2022-10-04 15:04:31 +02:00

64 lines
1.5 KiB
JavaScript

require("dotenv").config()
const packagejson = require("../package.json")
const fs = require("fs")
const path = require("path")
const express = require("express")
const cors = require("cors")
const { setupLatestRelease } = require("./lib/setupDist")
global.remoteRepo = "ragestudio/comty"
global.cachePath = path.join(process.cwd(), "cache")
global.distPath = path.join(process.cwd(), "dist")
async function checkDistIntegrity() {
// check if dist folder exists
if (!fs.existsSync(global.distPath)) {
return false
}
// TODO: check the dist checksum with oficial server checksum
return true
}
async function runServer() {
const app = express()
const portFromArgs = process.argv[2]
let portListen = portFromArgs ? portFromArgs : 9000
app.use(cors({
origin: "*",
methods: "GET,HEAD,PUT,PATCH,POST,DELETE",
preflightContinue: true,
optionsSuccessStatus: 204
}))
app.use(express.static(global.distPath))
app.get("*", function (req, res) {
res.sendFile(path.join(global.distPath, "index.html"))
})
app.listen(portListen)
console.log(`Running Wrapper v${packagejson.version}`)
console.log(`🌐 Listening app in port [${portListen}]`)
}
async function main() {
// check if dist is valid
if (!checkDistIntegrity()) {
await setupLatestRelease()
}
// start app
await runServer()
}
main().catch((err) => {
console.error(`[FATAL ERROR] >`, err)
})