| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- #!/usr/bin/env node
- /**
- * Generate version.ts file with build information
- * This script creates a TypeScript file containing version info from git and build time
- */
- const { execSync } = require('child_process');
- const fs = require('fs');
- const path = require('path');
- function getGitHash() {
- try {
- return execSync('git rev-parse --short HEAD', { encoding: 'utf-8' }).trim();
- } catch (error) {
- console.warn('Warning: Could not get git hash, using "unknown"');
- return 'unknown';
- }
- }
- function getGitBranch() {
- try {
- return execSync('git rev-parse --abbrev-ref HEAD', { encoding: 'utf-8' }).trim();
- } catch (error) {
- return 'unknown';
- }
- }
- function getBuildTime() {
- return new Date().toISOString();
- }
- function getPackageVersion() {
- try {
- const packageJson = JSON.parse(
- fs.readFileSync(path.join(__dirname, '../package.json'), 'utf-8')
- );
- return packageJson.version;
- } catch (error) {
- return '1.0.0';
- }
- }
- const gitHash = getGitHash();
- const gitBranch = getGitBranch();
- const buildTime = getBuildTime();
- const packageVersion = getPackageVersion();
- const versionContent = `/**
- * Auto-generated version information
- * DO NOT EDIT THIS FILE MANUALLY
- * Generated at build time by scripts/generate-version.js
- */
- export const VERSION_INFO = {
- version: '${packageVersion}',
- gitHash: '${gitHash}',
- gitBranch: '${gitBranch}',
- buildTime: '${buildTime}',
- fullVersion: '${packageVersion}+${gitHash}',
- } as const;
- export function getVersion(): string {
- return VERSION_INFO.fullVersion;
- }
- export function getUserAgent(): string {
- return \`ShopCallCrawler/\${VERSION_INFO.fullVersion} (+https://shopcall.ai/crawler)\`;
- }
- `;
- const outputPath = path.join(__dirname, '../src/version.ts');
- try {
- fs.writeFileSync(outputPath, versionContent, 'utf-8');
- console.log(`✓ Generated version file: ${outputPath}`);
- console.log(` Version: ${packageVersion}+${gitHash}`);
- console.log(` Branch: ${gitBranch}`);
- console.log(` Build time: ${buildTime}`);
- } catch (error) {
- console.error('Error writing version file:', error);
- process.exit(1);
- }
|