const { spawnSync } = require("node:child_process");
const fs = require("node:fs");
const actionPath = __dirname;
const mode = process.env.INPUT_MODE || "scan";
const isPost = process.env.STATE_isPost === "true";
function saveState(name, value) {
if (process.env.GITHUB_STATE) {
fs.appendFileSync(process.env.GITHUB_STATE, `${name}=${value}\n`);
}
}
const childEnv = {
...process.env,
JS_VERSION: process.env.INPUT_VERSION || "",
JS_PATH: process.env.INPUT_PATH || ".",
JS_STRICT: process.env.INPUT_STRICT || "false",
JS_ONLINE: process.env.INPUT_ONLINE || "false",
JS_FORMAT: process.env.INPUT_FORMAT || "text",
JS_COOLDOWN: process.env["INPUT_COOLDOWN-DAYS"] || "",
JS_OUTPUT: process.env["INPUT_OUTPUT-FILE"] || "",
JS_JOB: process.env.GITHUB_JOB || "job",
};
function runScript(name) {
const r = spawnSync("bash", [`${actionPath}/scripts/${name}`], {
stdio: "inherit",
env: childEnv,
});
process.exit(r.status === null ? 1 : r.status);
}
if (!isPost) {
saveState("isPost", "true"); if (mode === "observe") {
runScript("observe-start.sh");
} else {
runScript("run.sh"); }
} else if (mode === "observe") {
runScript("observe-report.sh");
} else {
process.exit(0); }