diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..d4a6268 --- /dev/null +++ b/src/index.ts @@ -0,0 +1,36 @@ +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import { loadConfig, saveConfig } from "./data/config.js"; +import { createDatabase } from "./data/database.js"; +import { createLogger } from "./logger.js"; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const ROOT_DIR = path.resolve(__dirname, ".."); +const DATA_DIR = path.join(ROOT_DIR, "data"); +const CONFIG_PATH = path.join(ROOT_DIR, "config.json"); +const DB_PATH = path.join(DATA_DIR, "tsmusicbot.db"); +const LOG_DIR = path.join(DATA_DIR, "logs"); + +async function main() { + const config = loadConfig(CONFIG_PATH); + saveConfig(CONFIG_PATH, config); + + const logger = createLogger(LOG_DIR); + const db = createDatabase(DB_PATH); + + logger.info({ webPort: config.webPort }, "TSMusicBot started"); + + const shutdown = () => { + logger.info("Shutting down..."); + db.close(); + process.exit(0); + }; + + process.on("SIGINT", shutdown); + process.on("SIGTERM", shutdown); +} + +main().catch((err) => { + console.error("Fatal error:", err); + process.exit(1); +});