From 706752753d8078288793254f3f2413b2103e6129 Mon Sep 17 00:00:00 2001 From: Anwesh Date: Tue, 23 Jan 2024 07:12:26 +0530 Subject: [PATCH] fix(info): return proper exit code on error (#21952) --- cli/tools/info.rs | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/cli/tools/info.rs b/cli/tools/info.rs index de867c61c3..2234c783d2 100644 --- a/cli/tools/info.rs +++ b/cli/tools/info.rs @@ -6,6 +6,7 @@ use std::fmt; use std::fmt::Write; use deno_ast::ModuleSpecifier; +use deno_core::anyhow::bail; use deno_core::error::AnyError; use deno_core::resolve_url_or_path; use deno_core::serde_json; @@ -405,7 +406,7 @@ impl<'a> GraphDisplayContext<'a> { graph: &'a ModuleGraph, npm_resolver: &'a dyn CliNpmResolver, writer: &mut TWrite, - ) -> fmt::Result { + ) -> Result<(), AnyError> { let npm_info = match npm_resolver.as_managed() { Some(npm_resolver) => { let npm_snapshot = npm_resolver.snapshot(); @@ -421,13 +422,12 @@ impl<'a> GraphDisplayContext<'a> { .into_writer(writer) } - fn into_writer(mut self, writer: &mut TWrite) -> fmt::Result { + fn into_writer( + mut self, + writer: &mut TWrite, + ) -> Result<(), AnyError> { if self.graph.roots.is_empty() || self.graph.roots.len() > 1 { - return writeln!( - writer, - "{} displaying graphs that have multiple roots is not supported.", - colors::red("error:") - ); + bail!("displaying graphs that have multiple roots is not supported."); } let root_specifier = self.graph.resolve(&self.graph.roots[0]); @@ -508,21 +508,13 @@ impl<'a> GraphDisplayContext<'a> { } Err(err) => { if let ModuleError::Missing(_, _) = *err { - writeln!( - writer, - "{} module could not be found", - colors::red("error:") - ) + bail!("module could not be found"); } else { - writeln!(writer, "{} {:#}", colors::red("error:"), err) + bail!("{:#}", err); } } Ok(None) => { - writeln!( - writer, - "{} an internal error occurred", - colors::red("error:") - ) + bail!("an internal error occurred"); } } }