Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | 1x 1x 1x 1x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x | import { spawnSync } from 'child_process'; /** * Our own execute function which doesn't use shells and strings. */ export function exec(commandLine: string[], options: { cwd?: string; json?: boolean; verbose?: boolean; env?: any } = { }): any { const proc = spawnSync(commandLine[0], commandLine.slice(1), { stdio: ['ignore', 'pipe', options.verbose ? 'inherit' : 'pipe'], // inherit STDERR in verbose mode env: { ...process.env, ...options.env, }, cwd: options.cwd, }); if (proc.error) { throw proc.error; } // cfn-guard uses 5 when there are policy validation failures if (proc.status !== 0 && proc.status !== 5) { if (process.stderr) { // will be 'null' in verbose mode process.stderr.write(proc.stderr); } throw new Error(`Command exited with ${proc.status ? `status ${proc.status}` : `signal ${proc.signal}`}`); } const output = proc.stdout.toString('utf-8').trim(); try { if (options.json) { if (output.length === 0) { return {}; } return JSON.parse(output); } return output; } catch (e) { // eslint-disable-next-line no-console console.error('Not JSON: ' + output); throw new Error('Command output is not JSON'); } } |