1st
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
import fs from 'fs'
|
||||
|
||||
const DEFAULT_SECRETS_PATH = '/etc/p42/secrets.env'
|
||||
|
||||
function stripQuotes(value) {
|
||||
if(
|
||||
(value.startsWith('"') && value.endsWith('"')) ||
|
||||
(value.startsWith("'") && value.endsWith("'"))
|
||||
) {
|
||||
return(value.slice(1, -1))
|
||||
}
|
||||
return(value)
|
||||
}
|
||||
|
||||
export function loadP42Secrets(filePath = DEFAULT_SECRETS_PATH) {
|
||||
if(process.env.mysql_user && process.env.mysql_pass) return(true)
|
||||
|
||||
if(!fs.existsSync(filePath)) return(false)
|
||||
|
||||
const text = fs.readFileSync(filePath, 'utf8')
|
||||
for(const rawLine of text.split('\n')) {
|
||||
const line = rawLine.trim()
|
||||
if(!line || line.startsWith('#')) continue
|
||||
const eq = line.indexOf('=')
|
||||
if(eq < 1) continue
|
||||
const key = line.slice(0, eq).trim()
|
||||
const value = stripQuotes(line.slice(eq + 1).trim())
|
||||
if(key === 'mysql_user' || key === 'mysql_pass') {
|
||||
process.env[key] = value
|
||||
}
|
||||
}
|
||||
|
||||
return(Boolean(process.env.mysql_user && process.env.mysql_pass))
|
||||
}
|
||||
Reference in New Issue
Block a user