diff options
Diffstat (limited to 'packages/cli/src/utils')
| -rw-r--r-- | packages/cli/src/utils/version.ts | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/packages/cli/src/utils/version.ts b/packages/cli/src/utils/version.ts new file mode 100644 index 00000000..8ccc3737 --- /dev/null +++ b/packages/cli/src/utils/version.ts @@ -0,0 +1,34 @@ +/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ + +import { readPackageUp } from 'read-package-up'; +import { fileURLToPath } from 'node:url'; +import { dirname } from 'node:path'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + +let cliVersion: string | undefined; + +export async function getCliVersion(): Promise<string> { + if (cliVersion) { + return cliVersion; + } + + if (process.env.CLI_VERSION) { + cliVersion = process.env.CLI_VERSION; + return cliVersion; + } + + try { + const readUpResult = await readPackageUp({ cwd: __dirname }); + cliVersion = readUpResult?.packageJson.version || 'unknown'; + } catch (_e) { + cliVersion = 'unknown'; + } + + return cliVersion; +} |
