mirror of
https://github.com/Jellify-Music/App.git
synced 2025-12-18 17:20:06 -06:00
67 lines
1.6 KiB
JavaScript
67 lines
1.6 KiB
JavaScript
const fs = require('fs')
|
|
const path = require('path')
|
|
|
|
function parseArgs(args) {
|
|
const updates = {}
|
|
args.forEach((arg) => {
|
|
const [key, value] = arg.split('=')
|
|
if (key && value !== undefined) {
|
|
updates[key.trim()] = value.trim()
|
|
}
|
|
})
|
|
return updates
|
|
}
|
|
|
|
function updateEnvFile(filePath, updates) {
|
|
let envContent = ''
|
|
try {
|
|
envContent = fs.readFileSync(filePath, 'utf8')
|
|
} catch (err) {
|
|
console.error(`❌ Failed to read .env file at ${filePath}`, err.message)
|
|
return
|
|
}
|
|
|
|
const lines = envContent.split(/\r?\n/)
|
|
const seenKeys = new Set()
|
|
|
|
const updatedLines = lines.map((line) => {
|
|
if (!line.trim() || line.trim().startsWith('#')) return line
|
|
|
|
const [key, ...rest] = line.split('=')
|
|
const trimmedKey = key.trim()
|
|
|
|
if (updates.hasOwnProperty(trimmedKey)) {
|
|
seenKeys.add(trimmedKey)
|
|
return `${trimmedKey}=${updates[trimmedKey]}`
|
|
}
|
|
|
|
return line
|
|
})
|
|
|
|
// Add any new keys not already in the file
|
|
Object.entries(updates).forEach(([key, value]) => {
|
|
if (!seenKeys.has(key)) {
|
|
updatedLines.push(`${key}=${value}`)
|
|
}
|
|
})
|
|
|
|
try {
|
|
fs.writeFileSync(filePath, updatedLines.join('\n'), 'utf8')
|
|
console.log('✅ .env file updated successfully')
|
|
} catch (err) {
|
|
console.error(`❌ Failed to write .env file:`, err.message)
|
|
}
|
|
}
|
|
|
|
// Get CLI args (excluding node and script path)
|
|
const args = process.argv.slice(2)
|
|
if (args.length === 0) {
|
|
console.error('❗ Usage: node updateEnv.js KEY1=value1 KEY2=value2')
|
|
process.exit(1)
|
|
}
|
|
|
|
const updates = parseArgs(args)
|
|
const envPath = path.resolve(__dirname, '../.env')
|
|
|
|
updateEnvFile(envPath, updates)
|