28 lines
526 B
TypeScript
28 lines
526 B
TypeScript
/**
|
|
* Shared command execution utility
|
|
*/
|
|
|
|
export interface CommandResult {
|
|
success: boolean;
|
|
stdout: string;
|
|
stderr: string;
|
|
}
|
|
|
|
export async function runCommand(
|
|
cmd: string,
|
|
args: string[]
|
|
): Promise<CommandResult> {
|
|
const command = new Deno.Command(cmd, {
|
|
args,
|
|
stdout: 'piped',
|
|
stderr: 'piped',
|
|
});
|
|
|
|
const result = await command.output();
|
|
return {
|
|
success: result.success,
|
|
stdout: new TextDecoder().decode(result.stdout),
|
|
stderr: new TextDecoder().decode(result.stderr),
|
|
};
|
|
}
|