buncid/index.js

89 lines
2.2 KiB
JavaScript
Raw Normal View History

2023-10-29 07:35:26 +00:00
#! /usr/bin/env node
// @ts-check
const fs = require("fs");
const path = require("path");
const colors = require("./utils/console-colors");
const startProcess = require("./deploy/start");
///////////////////////////////////////////////
///////////////////////////////////////////////
///////////////////////////////////////////////
const WORK_DIR = process.cwd();
///////////////////////////////////////////////
///////////////////////////////////////////////
///////////////////////////////////////////////
2023-11-01 05:01:17 +00:00
function run() {
try {
const configText = fs.readFileSync(
path.join(WORK_DIR, "nodecid.config.json"),
"utf-8"
);
/** @type {NodeCIConfig} */
const config = JSON.parse(configText);
2023-11-06 20:06:33 +00:00
const {
start,
preflight,
postflight,
build,
redeploy_path,
first_run,
port,
} = config;
2023-11-01 05:01:17 +00:00
/** @type {string | undefined} */
let redeployFile;
if (!redeploy_path) {
const defaultRedeployPath = path.join(WORK_DIR, "REDEPLOY");
const checkExistingPath = fs.existsSync(defaultRedeployPath);
if (!checkExistingPath) {
fs.writeFileSync(
defaultRedeployPath,
Date.now().toString(),
"utf-8"
);
}
redeployFile = path.join(WORK_DIR, "REDEPLOY");
} else {
redeployFile = path.resolve(WORK_DIR, redeploy_path);
2023-10-29 10:49:04 +00:00
}
2023-11-01 05:01:17 +00:00
if (!redeployFile) throw new Error("Redeploy file not found!");
2023-10-29 07:35:26 +00:00
2023-11-01 05:01:17 +00:00
startProcess({
command: start,
preflight,
redeploy_file: redeployFile,
first_run,
port,
2023-11-06 20:06:33 +00:00
postflight,
2023-11-01 05:01:17 +00:00
});
} catch (error) {
console.log(
`${colors.FgRed}ERROR:${colors.Reset} CI process failed! => ${error.message}`
);
}
2023-10-29 07:35:26 +00:00
}
2023-11-01 05:01:17 +00:00
run();
////////////////////////////////////////////
////////////////////////////////////////////
////////////////////////////////////////////
process.on("exit", () => {
console.log("Process exiting ...");
});
process.on("beforeExit", () => {
console.log("Process Before exit ...");
});