From 8029328aaea5299986b508371e160f99d7338827 Mon Sep 17 00:00:00 2001 From: Carlos Scheidegger Date: Tue, 4 Jun 2024 13:33:19 -0700 Subject: [PATCH 1/2] only define QUARTO_DEBUG when undefined --- package/scripts/common/quarto | 4 +++- package/scripts/windows/quarto.cmd | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/package/scripts/common/quarto b/package/scripts/common/quarto index 75b24626353..d27f23b24ba 100755 --- a/package/scripts/common/quarto +++ b/package/scripts/common/quarto @@ -60,7 +60,9 @@ if [ -f "$DEV_PATH" ]; then fi export QUARTO_BIN_PATH=$SCRIPT_PATH export QUARTO_SHARE_PATH="${QUARTO_SHARE_PATH=$QUARTO_SRC_PATH/resources/}" - export QUARTO_DEBUG=true + if [ -z ${QUARTO_DEBUG+x} ]; then + export QUARTO_DEBUG=true + fi QUARTO_CACHE_OPTIONS="--cached-only" # Check for deno update diff --git a/package/scripts/windows/quarto.cmd b/package/scripts/windows/quarto.cmd index eb71c965cd5..ea57dab955f 100644 --- a/package/scripts/windows/quarto.cmd +++ b/package/scripts/windows/quarto.cmd @@ -34,7 +34,10 @@ IF EXIST "!QUARTO_TS_PATH!" ( SET "QUARTO_TARGET=!QUARTO_TS_PATH!" ) - SET QUARTO_DEBUG=true + IF NOT DEFINED QUARTO_DEBUG ( + SET QUARTO_DEBUG=true + ) + :: Normalize path to remove ../.. stuff for %%i in ("!SCRIPT_PATH!..\config\deno-version") do SET "DENO_VERSION_FILE=%%~fi" From 94c83b4b9d1d5265e2de77d4fd21a5f278df580b Mon Sep 17 00:00:00 2001 From: Carlos Scheidegger Date: Tue, 4 Jun 2024 14:02:06 -0700 Subject: [PATCH 2/2] quarto inspect - don't emit stack trace by default --- src/core/lib/error.ts | 4 ++-- src/core/log.ts | 5 +++-- src/quarto.ts | 12 +++++++++++- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/core/lib/error.ts b/src/core/lib/error.ts index 0ea6ead51e1..df6683ead02 100644 --- a/src/core/lib/error.ts +++ b/src/core/lib/error.ts @@ -44,7 +44,7 @@ export class ErrorEx extends Error { public readonly printStack: boolean; } -export function asErrorEx(e: unknown) { +export function asErrorEx(e: unknown, defaultShowStack = true) { if (e instanceof ErrorEx) { return e; } else if (e instanceof Error) { @@ -52,7 +52,7 @@ export function asErrorEx(e: unknown) { // so that the stack trace survives (e as any).printName = e.name !== "Error"; - (e as any).printStack = !!e.message; + (e as any).printStack = defaultShowStack && !!e.message; return e as ErrorEx; } else { return new ErrorEx("Error", String(e), false, true); diff --git a/src/core/log.ts b/src/core/log.ts index 67e692b51be..e8763321b78 100644 --- a/src/core/log.ts +++ b/src/core/log.ts @@ -41,6 +41,7 @@ export interface LogMessageOptions { // deno-lint-ignore no-explicit-any export function appendLogOptions(cmd: Command): Command { + // deno-lint-ignore no-explicit-any const addLogOptions = (cmd: Command) => { return cmd.option( "--log ", @@ -315,9 +316,9 @@ export function logProgress(message: string) { log.info(colors.bold(colors.blue(message))); } -export function logError(e: unknown) { +export function logError(e: unknown, defaultShowStack = true) { // normalize - const err = asErrorEx(e); + const err = asErrorEx(e, defaultShowStack); // print error name if requested let message = err.printName ? `${err.name}: ${err.message}` : err.message; diff --git a/src/quarto.ts b/src/quarto.ts index 7812806bf31..65c06609a91 100644 --- a/src/quarto.ts +++ b/src/quarto.ts @@ -22,6 +22,8 @@ import { quartoConfig } from "./core/quarto.ts"; import { execProcess } from "./core/process.ts"; import { pandocBinaryPath } from "./core/resources.ts"; import { appendProfileArg, setProfileFromArg } from "./quarto-core/profile.ts"; +import { logError } from "./core/log.ts"; +import { CommandError } from "cliffy/command/_errors.ts"; import { devConfigsEqual, @@ -153,7 +155,15 @@ export async function quarto( } } - await promise; + try { + await promise; + } catch (e) { + if (e instanceof CommandError) { + logError(e, false); + } else { + throw e; + } + } } if (import.meta.main) {