nodecid/index.js

63 lines
1.6 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();
///////////////////////////////////////////////
///////////////////////////////////////////////
///////////////////////////////////////////////
try {
const configText = fs.readFileSync(
path.join(WORK_DIR, "nodecid.config.json"),
"utf-8"
);
/** @type {NodeCIConfig} */
const config = JSON.parse(configText);
2023-10-29 12:04:21 +00:00
const { start, preflight, redeploy_path, first_run } = config;
2023-10-29 07:35:26 +00:00
/** @type {string | undefined} */
let redeployFile;
if (!redeploy_path) {
2023-10-29 10:49:04 +00:00
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");
2023-10-29 07:35:26 +00:00
} else {
redeployFile = path.resolve(WORK_DIR, redeploy_path);
}
if (!redeployFile) throw new Error("Redeploy file not found!");
startProcess({
command: start,
preflight,
redeploy_file: redeployFile,
2023-10-29 12:04:21 +00:00
first_run,
2023-10-29 07:35:26 +00:00
});
} catch (error) {
console.log(
`${colors.FgRed}ERROR:${colors.Reset} CI process failed! => ${error.message}`
);
}