code-workshop-kit
Version:
The future of remote code workshops & training
33 lines • 1.35 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.runScript = void 0;
const child_process_1 = require("child_process");
const path_1 = __importDefault(require("path"));
const events_1 = __importDefault(require("events"));
const runScript = (opts) => {
const { cmd, dir, participant, participantIndex, fromParticipantFolder = true } = opts;
const processEmitter = new events_1.default();
let pathToRunScriptIn = path_1.default.resolve(dir);
if (fromParticipantFolder) {
pathToRunScriptIn = path_1.default.resolve(dir, 'participants', participant);
}
const _cmd = typeof cmd === 'function' ? cmd.call(null, participant, participantIndex) : cmd;
const script = child_process_1.spawn(_cmd, [], {
cwd: pathToRunScriptIn,
shell: true,
detached: true,
});
script.stdout.on('data', (data) => {
processEmitter.emit('out', `${data}`);
});
script.stderr.on('data', (data) => {
processEmitter.emit('err', `${data}`);
});
script.on('close', () => processEmitter.emit('close'));
return { processEmitter, script };
};
exports.runScript = runScript;
//# sourceMappingURL=runScript.js.map