first commit
This commit is contained in:
59
scripts/inject-version.js
Normal file
59
scripts/inject-version.js
Normal file
@@ -0,0 +1,59 @@
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
|
||||
// Get package version
|
||||
const packageJson = require('../package.json')
|
||||
const version = packageJson.version
|
||||
|
||||
// Get build time
|
||||
const buildTime = new Date().toISOString()
|
||||
|
||||
// Get git commit hash if available
|
||||
let commitHash = 'unknown'
|
||||
try {
|
||||
const { execSync } = require('child_process')
|
||||
commitHash = execSync('git rev-parse HEAD').toString().trim()
|
||||
} catch (error) {
|
||||
console.warn('Could not get git commit hash:', error.message)
|
||||
}
|
||||
|
||||
// Create .env.local with version info (only if it doesn't exist)
|
||||
const envLocalPath = path.join(__dirname, '..', '.env.local')
|
||||
const versionContent = `# Auto-generated version info - DO NOT EDIT
|
||||
NEXT_PUBLIC_APP_VERSION=${version}
|
||||
NEXT_PUBLIC_BUILD_TIME=${buildTime}
|
||||
NEXT_PUBLIC_COMMIT_HASH=${commitHash}
|
||||
BUILD_TIME=${buildTime}
|
||||
GIT_COMMIT_SHA=${commitHash}
|
||||
`
|
||||
|
||||
// Check if .env.local exists
|
||||
if (!fs.existsSync(envLocalPath)) {
|
||||
fs.writeFileSync(envLocalPath, versionContent)
|
||||
console.log('✅ Created .env.local with version info')
|
||||
} else {
|
||||
// Read existing content and update version info
|
||||
let existingContent = fs.readFileSync(envLocalPath, 'utf8')
|
||||
|
||||
// Remove existing version lines
|
||||
existingContent = existingContent
|
||||
.split('\n')
|
||||
.filter(line =>
|
||||
!line.startsWith('NEXT_PUBLIC_APP_VERSION=') &&
|
||||
!line.startsWith('NEXT_PUBLIC_BUILD_TIME=') &&
|
||||
!line.startsWith('NEXT_PUBLIC_COMMIT_HASH=') &&
|
||||
!line.startsWith('BUILD_TIME=') &&
|
||||
!line.startsWith('GIT_COMMIT_SHA=')
|
||||
)
|
||||
.join('\n')
|
||||
|
||||
// Add new version info
|
||||
const updatedContent = versionContent + '\n' + existingContent
|
||||
fs.writeFileSync(envLocalPath, updatedContent)
|
||||
console.log('✅ Updated .env.local with new version info')
|
||||
}
|
||||
|
||||
console.log(`📦 Build Info:
|
||||
Version: ${version}
|
||||
Build Time: ${buildTime}
|
||||
Commit: ${commitHash}`)
|
||||
Reference in New Issue
Block a user