* Fix: Correct version resolution for banner and update check Resolves issues where the tool's version was displayed as 'unknown'. - Modified 'displayBanner' in 'ui.js' and 'checkForUpdate' in 'commands.js' to read package.json relative to their own script locations using import.meta.url. - This ensures the correct local version is identified for both the main banner display and the update notification mechanism. - Restored a missing closing brace in 'ui.js' to fix a SyntaxError. * fix: refactor and cleanup * fix: chores and cleanup and testing * chore: cleanup * fix: add changeset --------- Co-authored-by: Christer Soederlund <christer.soderlund@gmail.com>
36 lines
1.1 KiB
JavaScript
36 lines
1.1 KiB
JavaScript
import fs from 'fs';
|
|
import path from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
import { log } from '../../scripts/modules/utils.js';
|
|
|
|
/**
|
|
* Reads the version from the nearest package.json relative to this file.
|
|
* Returns 'unknown' if not found or on error.
|
|
* @returns {string} The version string or 'unknown'.
|
|
*/
|
|
export function getTaskMasterVersion() {
|
|
let version = 'unknown';
|
|
try {
|
|
// Get the directory of the current module (getPackageVersion.js)
|
|
const currentModuleFilename = fileURLToPath(import.meta.url);
|
|
const currentModuleDirname = path.dirname(currentModuleFilename);
|
|
// Construct the path to package.json relative to this file (../../package.json)
|
|
const packageJsonPath = path.join(
|
|
currentModuleDirname,
|
|
'..',
|
|
'..',
|
|
'package.json'
|
|
);
|
|
|
|
if (fs.existsSync(packageJsonPath)) {
|
|
const packageJsonContent = fs.readFileSync(packageJsonPath, 'utf8');
|
|
const packageJson = JSON.parse(packageJsonContent);
|
|
version = packageJson.version;
|
|
}
|
|
} catch (error) {
|
|
// Silently fall back to default version
|
|
log('warn', 'Could not read own package.json for version info.', error);
|
|
}
|
|
return version;
|
|
}
|