40 lines
1.1 KiB
TypeScript
40 lines
1.1 KiB
TypeScript
![]() |
import { connect } from "./data/db";
|
||
|
import { Configs } from "./data/Configs";
|
||
|
import path from "path";
|
||
|
import * as _fs from "fs";
|
||
|
const fs = _fs.promises;
|
||
|
|
||
|
const authorId = process.argv[2];
|
||
|
if (!authorId) {
|
||
|
console.error("No author id specified");
|
||
|
process.exit(1);
|
||
|
}
|
||
|
|
||
|
console.log("Connecting to database");
|
||
|
connect().then(async () => {
|
||
|
const configs = new Configs();
|
||
|
|
||
|
console.log("Loading config files");
|
||
|
const configDir = path.join(__dirname, "..", "config");
|
||
|
const configFiles = await fs.readdir(configDir);
|
||
|
|
||
|
console.log("Looping through config files");
|
||
|
for (const configFile of configFiles) {
|
||
|
const parts = configFile.split(".");
|
||
|
const ext = parts[parts.length - 1];
|
||
|
if (ext !== "yml") continue;
|
||
|
|
||
|
const id = parts.slice(0, -1).join(".");
|
||
|
const key = id === "global" ? "global" : `guild-${id}`;
|
||
|
if (await configs.hasConfig(key)) continue;
|
||
|
|
||
|
const content = await fs.readFile(path.join(configDir, configFile), { encoding: "utf8" });
|
||
|
|
||
|
console.log(`Migrating config for ${key}`);
|
||
|
await configs.saveNewRevision(key, content, authorId);
|
||
|
}
|
||
|
|
||
|
console.log("Done!");
|
||
|
process.exit(0);
|
||
|
});
|