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