Initial commit
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
/**
|
||||
* Bumps the patch version in package.json and system.json in lock-step.
|
||||
* Run automatically as part of `bun run package`.
|
||||
*
|
||||
* Usage:
|
||||
* bun scripts/bump-version.ts # patch bump (0.1.0 → 0.1.1)
|
||||
* bun scripts/bump-version.ts minor # minor bump (0.1.0 → 0.2.0)
|
||||
* bun scripts/bump-version.ts major # major bump (0.1.0 → 1.0.0)
|
||||
*/
|
||||
|
||||
import { readFileSync, writeFileSync } from 'node:fs';
|
||||
import { resolve, dirname } from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
const __dirname = dirname(fileURLToPath(import.meta.url));
|
||||
const root = resolve(__dirname, '..');
|
||||
|
||||
type BumpType = 'major' | 'minor' | 'patch';
|
||||
const bump = (process.argv[2] ?? 'patch') as BumpType;
|
||||
|
||||
function bumpVersion(version: string, type: BumpType): string {
|
||||
const [major, minor, patch] = version.split('.').map(Number);
|
||||
if (type === 'major') return `${major + 1}.0.0`;
|
||||
if (type === 'minor') return `${major}.${minor + 1}.0`;
|
||||
return `${major}.${minor}.${patch + 1}`;
|
||||
}
|
||||
|
||||
// --- package.json ---
|
||||
const pkgPath = resolve(root, 'package.json');
|
||||
const pkg = JSON.parse(readFileSync(pkgPath, 'utf8')) as { version: string };
|
||||
const oldVersion = pkg.version;
|
||||
const newVersion = bumpVersion(oldVersion, bump);
|
||||
pkg.version = newVersion;
|
||||
writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n');
|
||||
|
||||
// --- system.json ---
|
||||
const sysPath = resolve(root, 'system.json');
|
||||
const sys = JSON.parse(readFileSync(sysPath, 'utf8')) as { version: string; download: string };
|
||||
sys.version = newVersion;
|
||||
// Update the versioned filename in the download URL if it follows the vX.Y.Z pattern
|
||||
sys.download = sys.download.replace(/-v[\d.]+\.zip$/, `-v${newVersion}.zip`);
|
||||
writeFileSync(sysPath, JSON.stringify(sys, null, 2) + '\n');
|
||||
|
||||
console.log(`✓ Version bumped ${oldVersion} → ${newVersion}`);
|
||||
Reference in New Issue
Block a user