From 8a2d1547f5959f90f819185861ee4df8208cf8f4 Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Thu, 11 Aug 2022 18:16:57 +0200 Subject: [PATCH] Make fosscord read config from json if CONFIG_PATH is set --- src/util/util/Config.ts | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/util/util/Config.ts b/src/util/util/Config.ts index 7fab7f90..55d7fab1 100644 --- a/src/util/util/Config.ts +++ b/src/util/util/Config.ts @@ -8,7 +8,7 @@ import path from "path"; import fs from "fs"; // TODO: yaml instead of json -// const overridePath = path.join(process.cwd(), "config.json"); +const overridePath = process.env.CONFIG_PATH ?? ""; var config: ConfigValue; var pairs: ConfigEntity[]; @@ -23,12 +23,16 @@ export const Config = { config = pairsToConfig(pairs); config = (config || {}).merge(DefaultConfigOptions); - // try { - // const overrideConfig = JSON.parse(fs.readFileSync(overridePath, { encoding: "utf8" })); - // config = overrideConfig.merge(config); - // } catch (error) { - // fs.writeFileSync(overridePath, JSON.stringify(config, null, 4)); - // } + if (process.env.CONFIG_PATH) { + console.log(`[Config] Using config path from environment rather than database.`); + try { + const overrideConfig = JSON.parse(fs.readFileSync(overridePath, { encoding: "utf8" })); + config = overrideConfig.merge(config); + } catch (error) { + fs.writeFileSync(overridePath, JSON.stringify(config, null, 4)); + } + } + return this.set(config); }, @@ -59,7 +63,9 @@ function applyConfig(val: ConfigValue) { pair.value = obj; return pair.save(); } - // fs.writeFileSync(overridePath, JSON.stringify(val, null, 4)); + + if (process.env.CONFIG_PATH) + fs.writeFileSync(overridePath, JSON.stringify(val, null, 4)); return apply(val); }