many many fixes
This commit is contained in:
33
scripts/bump-version.mjs
Normal file
33
scripts/bump-version.mjs
Normal file
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env node
|
||||
// Bumps the app version in src/version.json.
|
||||
//
|
||||
// node scripts/bump-version.mjs -> patch (1.0.0 -> 1.0.1)
|
||||
// node scripts/bump-version.mjs minor -> 1.0.1 -> 1.1.0
|
||||
// node scripts/bump-version.mjs major -> 1.1.0 -> 2.0.0
|
||||
//
|
||||
// Run automatically by the pre-commit hook (.githooks/pre-commit).
|
||||
import fs from 'node:fs';
|
||||
|
||||
const VERSION_FILE = new URL('../src/version.json', import.meta.url);
|
||||
const level = (process.argv[2] || 'patch').toLowerCase();
|
||||
|
||||
const data = JSON.parse(fs.readFileSync(VERSION_FILE, 'utf8'));
|
||||
const match = /^(\d+)\.(\d+)\.(\d+)$/.exec(data.version || '');
|
||||
if (!match) {
|
||||
console.error(`bump-version: invalid version "${data.version}" in src/version.json (expected X.Y.Z)`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
let [major, minor, patch] = match.slice(1).map(Number);
|
||||
if (level === 'major') { major++; minor = 0; patch = 0; }
|
||||
else if (level === 'minor') { minor++; patch = 0; }
|
||||
else if (level === 'patch') { patch++; }
|
||||
else {
|
||||
console.error(`bump-version: unknown level "${level}" (use patch, minor or major)`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const previous = data.version;
|
||||
data.version = `${major}.${minor}.${patch}`;
|
||||
fs.writeFileSync(VERSION_FILE, JSON.stringify(data, null, 2) + '\n', 'utf8');
|
||||
console.log(`bump-version: ${previous} -> ${data.version}`);
|
||||
Reference in New Issue
Block a user