Geräte-Agent für lokale Scan-Aufträge anlegen
This commit is contained in:
32
agents/fedeo-device-agent/src/env.ts
Normal file
32
agents/fedeo-device-agent/src/env.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
import { readFileSync, existsSync } from "node:fs"
|
||||
|
||||
const parseEnvLine = (line: string) => {
|
||||
const trimmed = line.trim()
|
||||
if (!trimmed || trimmed.startsWith("#")) return null
|
||||
|
||||
const separator = trimmed.indexOf("=")
|
||||
if (separator === -1) return null
|
||||
|
||||
const key = trimmed.slice(0, separator).trim()
|
||||
let value = trimmed.slice(separator + 1).trim()
|
||||
|
||||
if (
|
||||
(value.startsWith("\"") && value.endsWith("\"")) ||
|
||||
(value.startsWith("'") && value.endsWith("'"))
|
||||
) {
|
||||
value = value.slice(1, -1)
|
||||
}
|
||||
|
||||
return { key, value }
|
||||
}
|
||||
|
||||
export const loadDotEnv = (path = ".env") => {
|
||||
if (!existsSync(path)) return
|
||||
|
||||
const content = readFileSync(path, "utf8")
|
||||
for (const line of content.split(/\r?\n/)) {
|
||||
const parsed = parseEnvLine(line)
|
||||
if (!parsed) continue
|
||||
if (process.env[parsed.key] === undefined) process.env[parsed.key] = parsed.value
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user