forked from tpd94/CDRM-Extension
sync version: only update the "version" instead of parsing whole file
This commit is contained in:
parent
918269f42e
commit
889a4c63f3
@ -5,6 +5,32 @@ import { fileURLToPath } from "url";
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = path.dirname(__filename);
|
||||
|
||||
const updateVersionWithRegex = async (filePath, newVersion) => {
|
||||
try {
|
||||
const content = await fs.readFile(filePath, "utf-8");
|
||||
|
||||
// Regex to match "version": "any.version.number"
|
||||
const versionRegex = /("version"\s*:\s*")([^"]+)(")/;
|
||||
|
||||
if (!versionRegex.test(content)) {
|
||||
console.warn(`⚠️ No version field found in ${filePath}`);
|
||||
return false;
|
||||
}
|
||||
|
||||
const updatedContent = content.replace(versionRegex, `$1${newVersion}$3`);
|
||||
|
||||
if (content !== updatedContent) {
|
||||
await fs.writeFile(filePath, updatedContent);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
} catch (err) {
|
||||
console.error(`❌ Failed to update ${filePath}: ${err.message}`);
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
const syncVersion = async () => {
|
||||
const rootPkgPath = path.join(__dirname, "package.json");
|
||||
const frontendPkgPath = path.join(__dirname, "frontend", "package.json");
|
||||
@ -20,26 +46,20 @@ const syncVersion = async () => {
|
||||
return;
|
||||
}
|
||||
|
||||
// Update frontend/package.json if exists
|
||||
try {
|
||||
const frontendPkgRaw = await fs.readFile(frontendPkgPath, "utf-8");
|
||||
const frontendPkg = JSON.parse(frontendPkgRaw);
|
||||
frontendPkg.version = version;
|
||||
await fs.writeFile(frontendPkgPath, JSON.stringify(frontendPkg, null, 2));
|
||||
// Update frontend/package.json using regex
|
||||
const frontendUpdated = await updateVersionWithRegex(frontendPkgPath, version);
|
||||
if (frontendUpdated) {
|
||||
console.log(`🔄 Updated frontend/package.json version to ${version}`);
|
||||
} catch {
|
||||
console.log("ℹ️ frontend/package.json not found or unreadable, skipping version update.");
|
||||
} else {
|
||||
console.log("ℹ️ frontend/package.json not found or no changes needed.");
|
||||
}
|
||||
|
||||
// Update src/manifest.json version
|
||||
try {
|
||||
const manifestRaw = await fs.readFile(manifestPath, "utf-8");
|
||||
const manifest = JSON.parse(manifestRaw);
|
||||
manifest.version = version;
|
||||
await fs.writeFile(manifestPath, JSON.stringify(manifest, null, 2));
|
||||
// Update src/manifest.json using regex
|
||||
const manifestUpdated = await updateVersionWithRegex(manifestPath, version);
|
||||
if (manifestUpdated) {
|
||||
console.log(`🔄 Updated src/manifest.json version to ${version}`);
|
||||
} catch (err) {
|
||||
console.error(`❌ Failed to update src/manifest.json version: ${err.message}`);
|
||||
} else {
|
||||
console.log("ℹ️ src/manifest.json not found or no changes needed.");
|
||||
}
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user