|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import { execSync } from 'child_process'; |
|
|
import { existsSync, mkdirSync, writeFileSync } from 'fs'; |
|
|
import { dirname, join } from 'path'; |
|
|
import { fileURLToPath } from 'url'; |
|
|
|
|
|
const __dirname = dirname(fileURLToPath(import.meta.url)); |
|
|
const root = join(__dirname, '..'); |
|
|
const generatedDir = join(root, 'packages/cli/src/generated'); |
|
|
const gitCommitFile = join(generatedDir, 'git-commit.ts'); |
|
|
let gitCommitInfo = 'N/A'; |
|
|
|
|
|
if (!existsSync(generatedDir)) { |
|
|
mkdirSync(generatedDir, { recursive: true }); |
|
|
} |
|
|
|
|
|
try { |
|
|
const gitHash = execSync('git rev-parse --short HEAD', { |
|
|
encoding: 'utf-8', |
|
|
}).trim(); |
|
|
if (gitHash) { |
|
|
gitCommitInfo = gitHash; |
|
|
const gitStatus = execSync('git status --porcelain', { |
|
|
encoding: 'utf-8', |
|
|
}).trim(); |
|
|
if (gitStatus) { |
|
|
gitCommitInfo = `${gitHash} (local modifications)`; |
|
|
} |
|
|
} |
|
|
} catch { |
|
|
|
|
|
} |
|
|
|
|
|
const fileContent = `/** |
|
|
* @license |
|
|
* Copyright ${new Date().getFullYear()} Google LLC |
|
|
* SPDX-License-Identifier: Apache-2.0 |
|
|
*/ |
|
|
|
|
|
// This file is auto-generated by the build script (scripts/build.js) |
|
|
// Do not edit this file manually. |
|
|
export const GIT_COMMIT_INFO = '${gitCommitInfo}'; |
|
|
`; |
|
|
|
|
|
writeFileSync(gitCommitFile, fileContent); |
|
|
|