18 lines
460 B
TypeScript
18 lines
460 B
TypeScript
import cp from 'node:child_process';
|
|
import path from 'node:path';
|
|
import url from 'node:url';
|
|
|
|
const projectRoot = url.fileURLToPath(new URL('../', import.meta.url));
|
|
|
|
export function command(cmd: string, dir = '') {
|
|
return cp.execSync(cmd, { cwd: path.join(projectRoot, dir), encoding: 'utf-8' }).trim();
|
|
}
|
|
|
|
export function tryCommand(cmd: string, dir = '', fallback = '') {
|
|
try {
|
|
return command(cmd, dir);
|
|
} catch (e) {
|
|
return fallback;
|
|
}
|
|
}
|