Hardcoded a default configuration
This commit is contained in:
37
index.js
37
index.js
@@ -7,6 +7,14 @@ const API_URL = "https://aviationweather.gov/api/data/";
|
||||
const METAR_SERVICE = "metar";
|
||||
const generatorURL = "https://git.entropic.pro/Aiden/metar-rss";
|
||||
|
||||
let defaultConfig = {
|
||||
"outputdir": __dirname,
|
||||
"icaos": ["KJFK"],
|
||||
"siteurl": "https://example.com",
|
||||
"rss-baseurl": "https://example.com/weather",
|
||||
"check-interval": 10,
|
||||
"loglevel": 4
|
||||
};
|
||||
/** Load config file */
|
||||
const configFile = "./config.json";
|
||||
let configData;
|
||||
@@ -15,52 +23,53 @@ try {
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
console.warn("Unable to read config file, using defaults");
|
||||
configData = defaultConfig;
|
||||
}
|
||||
|
||||
/** Verify config data **/
|
||||
if (Number(configData["loglevel"]) == NaN) {
|
||||
console.warn("loglevel is not a number, using 4");
|
||||
configData["loglevel"] = 4;
|
||||
console.warn("loglevel is not a number, using " + defaultConfig["loglevel"]);
|
||||
configData["loglevel"] = defaultConfig["loglevel"];
|
||||
}
|
||||
const loglevel = Number(configData["loglevel"]);
|
||||
|
||||
try {
|
||||
if (!fs.lstatSync(configData["outputdir"]).isDirectory()) {
|
||||
if (loglevel >= 4) console.warn("outputdir is not a directory, using current folder");
|
||||
configData["outputdir"] = __dirname;
|
||||
if (loglevel >= 4) console.warn("outputdir is not a directory, using " + defaultConfig["outputdir"]);
|
||||
configData["outputdir"] = defaultConfig["outputdir"];
|
||||
}
|
||||
} catch (err) {
|
||||
if (loglevel >= 3) console.error(err);
|
||||
if (loglevel >= 4) console.warn("error finding outputdir, using current folder");
|
||||
configData["outputdir"] = __dirname;
|
||||
if (loglevel >= 4) console.warn("error finding outputdir, using " + defaultConfig["outputdir"]);
|
||||
configData["outputdir"] = defaultConfig["outputdir"];
|
||||
}
|
||||
const outputDir = configData["outputdir"]
|
||||
const outputDir = configData["outputdir"];
|
||||
|
||||
if (!Array.isArray(configData["icaos"])) {
|
||||
if (loglevel >= 4) console.warn("icao config must be an array of ICAO codes, using default");
|
||||
configData["icaos"] = ["KJFK"];
|
||||
configData["icaos"] = defaultConfig["icaos"];
|
||||
}
|
||||
const icaos = configData["icaos"];
|
||||
|
||||
try {
|
||||
new URL(configData["siteurl"]);
|
||||
} catch (err) {
|
||||
if (loglevel >= 4) console.warn("siteurl is not a valid URL, using example.com");
|
||||
configData["siteurl"] = "https://example.com"
|
||||
if (loglevel >= 4) console.warn("siteurl is not a valid URL, using " + defaultConfig["siteurl"]);
|
||||
configData["siteurl"] = defaultConfig["siteurl"];
|
||||
}
|
||||
const siteURL = new URL(configData["siteurl"]);
|
||||
|
||||
try {
|
||||
new URL(configData["rss-baseurl"]);
|
||||
} catch (err) {
|
||||
if (loglevel >= 4) console.warn("rss-baseurl is not a valid URL, using example.com");
|
||||
configData["rss-baseurl"] = "https://example.com"
|
||||
if (loglevel >= 4) console.warn("rss-baseurl is not a valid URL, using " + defaultConfig["rss-baseurl"]);
|
||||
configData["rss-baseurl"] = defaultConfig["rss-baseurl"];
|
||||
}
|
||||
const rssBaseURL = new URL(configData["rss-baseurl"]);
|
||||
|
||||
if (Number(configData["check-interval"]) == NaN) {
|
||||
if (loglevel >= 4) console.warn("check-interval is NaN, using 10 minutes");
|
||||
configData["check-interval"] = 10;
|
||||
if (loglevel >= 4) console.warn("check-interval is NaN, using " + defaultConfig["check-interval"] + " minutes.");
|
||||
configData["check-interval"] = defaultConfig["check-interval"];
|
||||
}
|
||||
const checkInterval = Number(configData["check-interval"]) * 1000 * 60;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user