-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall.mjs
More file actions
67 lines (51 loc) · 2.39 KB
/
install.mjs
File metadata and controls
67 lines (51 loc) · 2.39 KB
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import fs from "fs";
import Message from "./src/message.mjs";
import {createRandomString} from "./src/generic.mjs";
import { restoreDefaultSettings as restoreDefaultSiteSettings } from "./src/siteSettings.mjs";
import { restoreDefaultLayouts as restoreDefaultPageLayouts} from "./src/pageLayout.mjs";
import { refreshAllTables, insertDefaultCTFLeagueSettings } from "./src/ctfLeague.mjs";
import {insertDefaultRankingSettings } from "./src/rankings.mjs";
import {mysqlInstall} from "./src/mysqlInstall.mjs";
import {sqliteInstall} from "./src/sqliteInstall.mjs";
import { SQL_MODE } from "./config.mjs";
import { updateJSONApiSettings } from "./src/json.mjs";
import { createDefaultLogsFolderSettings} from "./src/logsfoldersettings.mjs";
async function main(){
if(SQL_MODE === "sqlite"){
new Message("Selected Database Type is SQLite", "note");
await sqliteInstall();
}else{
new Message("Selected Database Type is MYSQL", "note");
await mysqlInstall();
}
new Message("Inserting Default Rankings Settings", "note");
await insertDefaultRankingSettings();
new Message("Inserting Default CTF League Settings", "note");
await insertDefaultCTFLeagueSettings();
new Message("Inserting Default Site Settings", "note");
await restoreDefaultSiteSettings();
new Message("Inserting Default Site Page Layout Settings", "note");
await restoreDefaultPageLayouts();
new Message("Creating Default Logs Folder Settings", "note");
await createDefaultLogsFolderSettings();
new Message("Creating JSON API Settings","note");
await updateJSONApiSettings();
if(!fs.existsSync("./salt.mjs")){
new Message(`Creating password salt`,"note");
const seed = createRandomString(10000);
const fileContents = `export const salt = \`${seed}\`;`;
fs.writeFileSync("./salt.mjs", fileContents);
}
if(!fs.existsSync("./secret.mjs")){
new Message(`Creating session secret`, "note");
const seed2 = createRandomString(2048);
const fileContents2 = `export const SESSION_SECRET = \`${seed2}\`;`;
fs.writeFileSync("./secret.mjs", fileContents2);
}
new Message(`Refreshing player ctf league Map tables.`,"note");
await refreshAllTables("maps");
new Message(`Refreshing player ctf league Gametype tables.`,"note");
await refreshAllTables("gametypes");
process.exit();
}
await main();