aboutsummaryrefslogtreecommitdiff
path: root/scripts/sync-manifest-version.js
blob: b5515af05fc06240583f41008889a3f1691b90c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/env node
// Sync browser-extension/manifest.json version from package.json.
// Run automatically by the `version` npm lifecycle hook (npm version <bump>),
// and pre-publish, so the Chrome extension version never drifts from the npm
// package version.
const { readFileSync, writeFileSync } = require("node:fs");
const { join } = require("node:path");

const pkgPath = join(__dirname, "..", "package.json");
const manifestPath = join(
	__dirname,
	"..",
	"extensions",
	"chrome-profile-bridge",
	"browser-extension",
	"manifest.json",
);

const pkg = JSON.parse(readFileSync(pkgPath, "utf8"));
const manifest = JSON.parse(readFileSync(manifestPath, "utf8"));

if (manifest.version === pkg.version) {
	console.log(`manifest.json already at ${pkg.version}`);
	process.exit(0);
}

const prev = manifest.version;
manifest.version = pkg.version;
writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) + "\n");
console.log(`manifest.json ${prev} -> ${pkg.version}`);

// Stage so `npm version` includes manifest bump in the version commit.
try {
	require("node:child_process").execSync(`git add "${manifestPath}"`, { stdio: "ignore" });
} catch {
	/* not in a git checkout - ok */
}