From edec1f74bb105807992edbdf6432bb64c82fc349 Mon Sep 17 00:00:00 2001 From: Marc Lefrancois Date: Sun, 3 Mar 2024 15:12:32 -0500 Subject: [PATCH] Add output and error handling to hook-runner (#417) * Add output and error handling to hook-runner * cleanup + linting * run make format also * Nicer output when script succeeds --- cli/src/services/formatters/hook-runner.ts | 12 ++++++++++++ cli/src/services/hook-runner.ts | 15 ++++++++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/cli/src/services/formatters/hook-runner.ts b/cli/src/services/formatters/hook-runner.ts index ffd7ba626..0f5d72dcc 100644 --- a/cli/src/services/formatters/hook-runner.ts +++ b/cli/src/services/formatters/hook-runner.ts @@ -14,4 +14,16 @@ export default class HookRunnerFomatter { }); console.log(''); } + error(command: string, errors: string[]) { + console.log(chalk.red('⚠ '), chalk.bold(chalk.red(`${command}:`))); + errors.forEach((error) => { + console.log(' ', chalk.red(error)); + }); + console.log(''); + } + success(command: string, message: string) { + console.log(chalk.green('✓ '), chalk.bold(chalk.green(`${command}:`))); + console.log(' ', chalk.green(message)); + console.log(''); +} } diff --git a/cli/src/services/hook-runner.ts b/cli/src/services/hook-runner.ts index cbb0bc196..2f3381e8c 100644 --- a/cli/src/services/hook-runner.ts +++ b/cli/src/services/hook-runner.ts @@ -23,9 +23,18 @@ export default class HookRunner { const hooks = this.hooks[name]; if (hooks) { - new Formatter().log(name, hooks); - - hooks.forEach(execSync); + const formatter = new Formatter(); + formatter.log(name, hooks); + + hooks.forEach((hook) => { + try { + const output: string = execSync(hook, {stdio: 'pipe'}).toString(); + formatter.success(hook, output); + } catch (error: any) { + formatter.error(hook, [error.stderr.toString()]); + process.exit(error.status); + } + }); } return this.document.refreshPaths();