snyk-docker-plugin
Version:
Snyk CLI docker plugin
47 lines • 1.82 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.execute = void 0;
const childProcess = require("child_process");
function execute(command, args, options) {
const spawnOptions = {
// Some distributions may not have /bin/bash, which would cause `child_process.spawn` to fail.
// By setting `shell: false`, we tell `spawn` to execute the command directly without a shell,
// which is more portable.
shell: false,
env: { ...process.env },
};
if (options && options.cwd) {
spawnOptions.cwd = options.cwd;
}
// Before spawning an external process, we look if we need to restore the system proxy configuration,
// which overrides the cli internal proxy configuration.
if (process.env.SNYK_SYSTEM_HTTP_PROXY !== undefined) {
spawnOptions.env.HTTP_PROXY = process.env.SNYK_SYSTEM_HTTP_PROXY;
}
if (process.env.SNYK_SYSTEM_HTTPS_PROXY !== undefined) {
spawnOptions.env.HTTPS_PROXY = process.env.SNYK_SYSTEM_HTTPS_PROXY;
}
if (process.env.SNYK_SYSTEM_NO_PROXY !== undefined) {
spawnOptions.env.NO_PROXY = process.env.SNYK_SYSTEM_NO_PROXY;
}
return new Promise((resolve, reject) => {
let stdout = "";
let stderr = "";
const proc = childProcess.spawn(command, args, spawnOptions);
proc.stdout.on("data", (data) => {
stdout = stdout + data;
});
proc.stderr.on("data", (data) => {
stderr = stderr + data;
});
proc.on("close", (code) => {
const output = { stdout, stderr };
if (code !== 0) {
return reject(output);
}
resolve(output);
});
});
}
exports.execute = execute;
//# sourceMappingURL=sub-process.js.map
;