@cocalc/project
Version:
CoCalc: project daemon
45 lines • 1.72 kB
JavaScript
;
/*
* This file is part of CoCalc: Copyright © 2022 Sagemath, Inc.
* License: AGPLv3 s.t. "Commons Clause" – see LICENSE.md for details
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.run = void 0;
/*
This runs a script configured via the --init [str] parameter.
*/
const node_child_process_1 = require("node:child_process");
const node_fs_1 = require("node:fs");
const node_path_1 = require("node:path");
const node_os_1 = require("node:os");
const promises_1 = require("node:fs/promises");
const misc_1 = require("@cocalc/util/misc");
const init_program_1 = require("./init-program");
const logger_1 = require("./logger");
const { info } = (0, logger_1.getLogger)("init-script");
async function run() {
if (!init_program_1.options.init)
return;
const initScript = (0, node_path_1.join)((0, node_os_1.homedir)(), init_program_1.options.init);
try {
await (0, promises_1.access)(initScript, node_fs_1.constants.R_OK);
}
catch {
info(`"${initScript}" does not exist`);
return;
}
try {
info(`running "${initScript}"`);
const out = (0, node_fs_1.openSync)((0, misc_1.change_filename_extension)(initScript, "log"), "w");
const err = (0, node_fs_1.openSync)((0, misc_1.change_filename_extension)(initScript, "err"), "w");
// we don't detach the process, because otherwise it stays around when restarting the project
(0, node_child_process_1.spawn)("bash", [initScript], {
stdio: ["ignore", out, err],
});
}
catch (err) {
info(`Problem running "${initScript}" -- ${err}`);
}
}
exports.run = run;
//# sourceMappingURL=init-script.js.map