homepage/src/utils/config/config.js

37 lines
978 B
JavaScript
Raw Normal View History

2022-09-07 16:53:24 +03:00
/* eslint-disable no-console */
2022-09-06 08:39:25 +03:00
import { join } from "path";
2022-09-18 16:41:01 +03:00
import { existsSync, copyFile, readFileSync } from "fs";
2022-09-07 16:53:24 +03:00
import yaml from "js-yaml";
2022-08-24 10:44:35 +03:00
export default function checkAndCopyConfig(config) {
const configYaml = join(process.cwd(), "config", config);
if (!existsSync(configYaml)) {
const configSkeleton = join(process.cwd(), "src", "skeleton", config);
copyFile(configSkeleton, configYaml, (err) => {
2022-08-25 13:16:03 +03:00
if (err) {
2022-09-07 16:53:24 +03:00
console.error("error copying config", err);
2022-08-25 13:16:03 +03:00
throw err;
}
2022-08-24 10:44:35 +03:00
console.info("%s was copied to the config folder", config);
});
2022-09-18 16:41:01 +03:00
return true;
}
try {
yaml.load(readFileSync(configYaml, "utf8"));
return true;
} catch (e) {
return { ...e, config };
2022-08-24 10:44:35 +03:00
}
}
2022-09-18 16:41:01 +03:00
export function getSettings() {
checkAndCopyConfig("settings.yaml");
2022-09-06 08:39:25 +03:00
const settingsYaml = join(process.cwd(), "config", "settings.yaml");
2022-09-18 16:41:01 +03:00
const fileContents = readFileSync(settingsYaml, "utf8");
return yaml.load(fileContents);
}