Initial commit: Open sourcing all of the Maple Open Technologies code.
This commit is contained in:
commit
755d54a99d
2010 changed files with 448675 additions and 0 deletions
72
web/maplefile-frontend/scripts/generate-version.js
Executable file
72
web/maplefile-frontend/scripts/generate-version.js
Executable file
|
|
@ -0,0 +1,72 @@
|
|||
#!/usr/bin/env node
|
||||
|
||||
/**
|
||||
* Generate version information for the build
|
||||
* Captures git hash, build timestamp, and version
|
||||
*/
|
||||
|
||||
/* eslint-env node */
|
||||
|
||||
import { execSync } from 'child_process';
|
||||
import { writeFileSync, mkdirSync } from 'fs';
|
||||
import { fileURLToPath } from 'url';
|
||||
import { dirname, join } from 'path';
|
||||
import process from 'process';
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
|
||||
try {
|
||||
// Get git information
|
||||
const gitHash = execSync('git rev-parse --short HEAD', { encoding: 'utf-8' }).trim();
|
||||
const gitBranch = execSync('git rev-parse --abbrev-ref HEAD', { encoding: 'utf-8' }).trim();
|
||||
|
||||
// Get timestamp
|
||||
const buildTime = new Date().toISOString();
|
||||
|
||||
// Read package.json version
|
||||
const packageJsonPath = join(__dirname, '..', 'package.json');
|
||||
const packageJson = JSON.parse(
|
||||
execSync(`cat ${packageJsonPath}`, { encoding: 'utf-8' })
|
||||
);
|
||||
|
||||
const versionInfo = {
|
||||
version: packageJson.version,
|
||||
gitHash,
|
||||
gitBranch,
|
||||
buildTime,
|
||||
nodeVersion: process.version,
|
||||
};
|
||||
|
||||
// Ensure public directory exists
|
||||
const publicDir = join(__dirname, '..', 'public');
|
||||
mkdirSync(publicDir, { recursive: true });
|
||||
|
||||
// Write to public directory so it's accessible at runtime
|
||||
const outputPath = join(publicDir, 'version.json');
|
||||
writeFileSync(outputPath, JSON.stringify(versionInfo, null, 2));
|
||||
|
||||
console.log('✅ Version information generated:');
|
||||
console.log(JSON.stringify(versionInfo, null, 2));
|
||||
|
||||
} catch (error) {
|
||||
console.error('⚠️ Failed to generate version info:', error.message);
|
||||
|
||||
// Create fallback version info
|
||||
const fallbackVersion = {
|
||||
version: '0.0.0',
|
||||
gitHash: 'unknown',
|
||||
gitBranch: 'unknown',
|
||||
buildTime: new Date().toISOString(),
|
||||
nodeVersion: process.version,
|
||||
};
|
||||
|
||||
// Ensure public directory exists
|
||||
const publicDir = join(__dirname, '..', 'public');
|
||||
mkdirSync(publicDir, { recursive: true });
|
||||
|
||||
const outputPath = join(publicDir, 'version.json');
|
||||
writeFileSync(outputPath, JSON.stringify(fallbackVersion, null, 2));
|
||||
|
||||
console.log('✅ Fallback version information generated');
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue