mirror of
https://github.com/UNITRONIX/BetterDesk.git
synced 2026-09-10 09:35:39 +00:00
bca4740373
Translate Organizations device-groups UI across all locales, consolidate [Unreleased] notes for 3.3.0, and copy VERSION into native console paths (#192).
59 lines
1.7 KiB
JavaScript
59 lines
1.7 KiB
JavaScript
'use strict';
|
|
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
const SEMVER_RE = /^(\d+)\.(\d+)\.(\d+)$/;
|
|
|
|
function getProjectRoot() {
|
|
return path.join(__dirname, '..', '..');
|
|
}
|
|
|
|
function readPackageJsonVersion(consoleDir) {
|
|
try {
|
|
const pkgPath = path.join(consoleDir || path.join(__dirname, '..'), 'package.json');
|
|
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
|
|
const v = (pkg.version || '').trim();
|
|
return SEMVER_RE.test(v) ? v : null;
|
|
} catch (_e) {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Read canonical BetterDesk product version.
|
|
* Prefers repo-root VERSION, then web-nodejs/package.json, then fallback.
|
|
*/
|
|
function readProductVersion({ rootDir, consoleDir, fallback = '0.0.0' } = {}) {
|
|
const projectRoot = rootDir || getProjectRoot();
|
|
const versionFile = path.join(projectRoot, 'VERSION');
|
|
|
|
try {
|
|
if (fs.existsSync(versionFile)) {
|
|
const v = fs.readFileSync(versionFile, 'utf8').trim();
|
|
if (SEMVER_RE.test(v)) return v;
|
|
}
|
|
} catch (_e) { /* fall through */ }
|
|
|
|
const resolvedConsoleDir = consoleDir || path.join(projectRoot, 'web-nodejs');
|
|
const consoleVersionFile = path.join(resolvedConsoleDir, 'VERSION');
|
|
try {
|
|
if (fs.existsSync(consoleVersionFile)) {
|
|
const v = fs.readFileSync(consoleVersionFile, 'utf8').trim();
|
|
if (SEMVER_RE.test(v)) return v;
|
|
}
|
|
} catch (_e) { /* fall through */ }
|
|
|
|
const fromPkg = readPackageJsonVersion(resolvedConsoleDir);
|
|
if (fromPkg) return fromPkg;
|
|
|
|
return fallback;
|
|
}
|
|
|
|
module.exports = {
|
|
SEMVER_RE,
|
|
getProjectRoot,
|
|
readProductVersion,
|
|
readPackageJsonVersion,
|
|
};
|