diff options
author | Minteck <contact@minteck.org> | 2022-07-13 23:34:21 +0200 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2022-07-13 23:34:21 +0200 |
commit | 7b5df4ca0a5bd6fcf033ef40563599593b156910 (patch) | |
tree | 56cb89f3900adde9da67e7558793a20fb40d7197 /index.ts | |
download | cooler-pony-7b5df4ca0a5bd6fcf033ef40563599593b156910.tar.gz cooler-pony-7b5df4ca0a5bd6fcf033ef40563599593b156910.tar.bz2 cooler-pony-7b5df4ca0a5bd6fcf033ef40563599593b156910.zip |
Initial commit
Diffstat (limited to 'index.ts')
-rw-r--r-- | index.ts | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/index.ts b/index.ts new file mode 100644 index 0000000..0446559 --- /dev/null +++ b/index.ts @@ -0,0 +1,65 @@ +import * as fs from 'fs'; +import {LogManager} from "./core/LogManager"; +import {CoolerPony} from "./core/CoolerPony"; + +global.data = {}; +let lastSaveData = "{}"; + +if (fs.existsSync("./data/database.json")) { + global.data = JSON.parse(fs.readFileSync("./data/database.json").toString()); + lastSaveData = fs.readFileSync("./data/database.json").toString(); +} + +setInterval(() => { + if (lastSaveData !== JSON.stringify(global.data)) { + fs.writeFileSync("./data/database.json", JSON.stringify(global.data)); + lastSaveData = JSON.stringify(global.data); + } +}); + +if (!global.data.managedChannels) { + global.data.managedChannels = []; +} + +global.version = (fs.existsSync("./.git/refs/heads/mane") ? fs.readFileSync("./.git/refs/heads/mane").toString().trim().substring(0, 8) : (fs.existsSync("../.git/refs/heads/mane") ? fs.readFileSync("../.git/refs/heads/mane").toString().trim().substring(0, 8) : (fs.existsSync("./version.txt") ? fs.readFileSync("./version.txt").toString().trim() : (fs.existsSync("../version.txt") ? fs.readFileSync("../version.txt").toString().trim() : "live")))); +global.build = (fs.existsSync("./build.txt") ? fs.readFileSync("./build.txt").toString().trim() : (fs.existsSync("../build.txt") ? fs.readFileSync("../build.txt").toString().trim() : "dev")); + +function restart() { + if (fs.existsSync("./data/lastRestart") && new Date().getTime() - new Date(fs.readFileSync("./data/lastRestart").toString()).getTime() < 60000) { + LogManager.error("Restart cancelled: too close to another restart, try again in a few seconds."); + fs.rmSync("./RESTART", {recursive: true}); + } else { + fs.rmSync("./RESTART", {recursive: true}); + fs.writeFileSync("./data/lastRestart", new Date().toISOString()); + LogManager.warn("Restart requested."); + process.exit(14); + } +} + +async function restartManager() { + if (fs.existsSync("./RESTART-FORCE")) { + fs.rmSync("./RESTART-FORCE", {recursive: true}); + LogManager.warn("Force restart requested."); + process.exit(14); + } + + if (fs.existsSync("./RESTART")) { + restart(); + } +} + +setInterval(restartManager, 500); +global.systemRoot = __dirname; + +if (!fs.existsSync("data")) fs.mkdirSync("data"); + +let token = ""; +if (fs.existsSync("token.txt")) token = fs.readFileSync("token.txt").toString().trim(); +else if (fs.existsSync("../token.txt")) token = fs.readFileSync("../token.txt").toString().trim(); +else { + LogManager.error("Cannot find token in the expected places (" + __dirname + "/token.txt or " + __dirname.split("/").splice(__dirname.split("/").length - 1, 1).join("/") + "/token.txt"); + process.exit(1); +} + +LogManager.verbose("Starting Discord bot..."); +new CoolerPony(token);
\ No newline at end of file |