65 lines
1.6 KiB
TypeScript
Executable File
65 lines
1.6 KiB
TypeScript
Executable File
#!/usr/bin/env bun
|
|
|
|
const fs = require("fs");
|
|
const path = require("path");
|
|
|
|
function incrementVersion(version) {
|
|
let [major, minor, patch] = version.split(".").map(Number);
|
|
patch += 1;
|
|
if (patch >= 10) {
|
|
patch = 0;
|
|
minor += 1;
|
|
if (minor >= 10) {
|
|
minor = 0;
|
|
major += 1;
|
|
}
|
|
}
|
|
return `${major}.${minor}.${patch}`;
|
|
}
|
|
|
|
function updateSetupPy(newVersion) {
|
|
const setupPyPath = path.join(__dirname, "setup.py");
|
|
let setupPyContent = fs.readFileSync(setupPyPath, "utf8");
|
|
setupPyContent = setupPyContent.replace(
|
|
/version=['"](\d+\.\d+\.\d+)['"]/,
|
|
`version='${newVersion}'`
|
|
);
|
|
fs.writeFileSync(setupPyPath, setupPyContent, "utf8");
|
|
}
|
|
|
|
function updatePackageJson(newVersion) {
|
|
const packageJsonPath = path.join(__dirname, "package.json");
|
|
const packageJsonContent = JSON.parse(
|
|
fs.readFileSync(packageJsonPath, "utf8")
|
|
);
|
|
packageJsonContent.version = newVersion;
|
|
fs.writeFileSync(
|
|
packageJsonPath,
|
|
JSON.stringify(packageJsonContent, null, 2),
|
|
"utf8"
|
|
);
|
|
}
|
|
|
|
function main() {
|
|
const setupPyPath = path.join(__dirname, "setup.py");
|
|
const setupPyContent = fs.readFileSync(setupPyPath, "utf8");
|
|
const currentVersionMatch = setupPyContent.match(
|
|
/version=['"](\d+\.\d+\.\d+)['"]/
|
|
);
|
|
|
|
if (!currentVersionMatch) {
|
|
console.error("Failed to find version in setup.py");
|
|
process.exit(1);
|
|
}
|
|
|
|
const currentVersion = currentVersionMatch[1];
|
|
const newVersion = incrementVersion(currentVersion);
|
|
|
|
updateSetupPy(newVersion);
|
|
updatePackageJson(newVersion);
|
|
|
|
console.log(`Version updated to ${newVersion}`);
|
|
}
|
|
|
|
main();
|