UNPKG

@naturalcycles/ktlint

Version:

ktlint, conveniently published to npm registry

34 lines (33 loc) 966 B
import { spawn } from 'node:child_process'; export function runCommand(command, args = [], opt = {}) { console.log([command, ...args].join(' ')); const p = spawn([command, ...args].join(' '), { stdio: 'inherit', shell: true, ...opt, }); p.on('close', code => { if (code) { console.log(`${command} exited with code ${code}`); } process.exit(code || 0); }); } /** * Throws error on failure. */ export async function runCommandSafe(command, args = [], opt = {}) { console.log([command, ...args].join(' ')); return await new Promise((resolve, reject) => { const p = spawn([command, ...args].join(' '), { stdio: 'inherit', shell: true, ...opt, }); p.on('close', code => { if (!code) return resolve(); reject(new Error(`${command} exited with code ${code}`)); }); }); }