-
Notifications
You must be signed in to change notification settings - Fork 2
/
migrate-config.js
48 lines (39 loc) · 1.32 KB
/
migrate-config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import "dotenv/config";
import fs from "node:fs";
import readline from "node:readline";
function readConfigIfExists(filePath) {
if (fs.existsSync(filePath)) {
return JSON.parse(fs.readFileSync(filePath));
} else {
return [];
}
}
function runMigration(cron) {
const configObject = {
twitchLogin: process.env.BROADCASTER_LOGIN,
cron: cron,
timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
discordWebhook: process.env.DISCORD_WEBHOOK_URL,
pollingInterval: process.env.POLLING_INTERVAL,
suppressUntitled: process.env.SUPPRESS_UNTITLED.toLowerCase() == "true",
showCreatedDate: process.env.SHOW_CREATED_DATE.toLowerCase() == "true",
};
const config = readConfigIfExists(".config.json");
config.push(configObject);
fs.writeFileSync(".config.json", JSON.stringify(config, null, 2));
console.log(JSON.stringify(config, null, 2));
const newEnv = `TWITCH_CLIENT_ID=${process.env.TWITCH_CLIENT_ID ?? "[0-9a-z]"}\nTWITCH_CLIENT_SECRET=${process.env.TWITCH_CLIENT_SECRET ?? "[0-9a-z]"}`;
fs.writeFileSync(".env", newEnv);
console.log(newEnv);
}
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
rl.question(
"Please enter the cron expression you want to have it run as:\n",
(cron) => {
rl.close();
runMigration(cron);
},
);