diff options
| author | Tommaso Sciortino <[email protected]> | 2025-06-06 16:21:20 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-06-06 16:21:20 -0700 |
| commit | 76ec9122c0dd36f0535a74c65811c0f7bd138f4d (patch) | |
| tree | 0c13eb04f40fd084dd76453598d95ea785231243 /packages/cli/src/utils/version.ts | |
| parent | e94a10023dcb7a3a3a88262e069815de3a985f7c (diff) | |
clean up version lookup code (#804)
Diffstat (limited to 'packages/cli/src/utils/version.ts')
| -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; +} |
