cargo-bundle icon indicating copy to clipboard operation
cargo-bundle copied to clipboard

Panic when `TERM=dumb`

Open carlocab opened this issue 2 years ago • 1 comments

v0.6.0 crashes when TERM=dumb. Here's a way to reproduce this on macOS (12.4, rust installed via Homebrew):

cargo new test_crate --bin
cd test_crate

cat > Cargo.toml <<'TOML'
[package]
name = "test_crate"
version = "0.1.0"
description = "test crate"

[package.metadata.bundle]
name = "test_crate"
identifier = "crate.test"
TOML

TERM=dumb cargo bundle

This leads to the following error:

❯ TERM=dumb cargo bundle
   Compiling test_crate v0.1.0 (/private/var/folders/kb/pf4wbfc512z47l56g5072l900000gn/T/tmp.qfPkuaFYZY/test_crate)
    Finished dev [unoptimized + debuginfo] target(s) in 1.95s
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error(Term(ColorOutOfRange), State { next_error: None, backtrace: InternalBacktrace { backtrace: None } })', src/main.rs:164:37
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Here's the same command with a full backtrace:

❯ RUST_BACKTRACE=full TERM=dumb cargo bundle
    Finished dev [unoptimized + debuginfo] target(s) in 0.05s
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error(Term(ColorOutOfRange), State { next_error: None, backtrace: InternalBacktrace { backtrace: Some(stack backtrace:
   0: backtrace::backtrace::trace
   1: backtrace::capture::Backtrace::new_unresolved
   2: error_chain::backtrace::imp::InternalBacktrace::new
   3: <error_chain::State as core::default::Default>::default
   4: cargo_bundle::bundle::common::print_error
   5: cargo_bundle::main
   6: std::sys_common::backtrace::__rust_begin_short_backtrace
   7: std::rt::lang_start::{{closure}}
   8: std::rt::lang_start_internal
   9: main
) } })', src/main.rs:164:37
stack backtrace:
   0:        0x10a4b63b2 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h16d1a5d48aeff79a
   1:        0x10a4cd7fa - core::fmt::write::hd4894418914ead0b
   2:        0x10a4a0108 - std::io::Write::write_fmt::h64d317bb018e2b5c
   3:        0x10a4a4e0d - std::panicking::default_hook::{{closure}}::h4fa7fb9660e915bb
   4:        0x10a4a4ac5 - std::panicking::default_hook::hfc7c802f5856fff7
   5:        0x10a4a548f - std::panicking::rust_panic_with_hook::hac34d5423636aa62
   6:        0x10a4b6b03 - std::panicking::begin_panic_handler::{{closure}}::h20649726a6fa6320
   7:        0x10a4b64c7 - std::sys_common::backtrace::__rust_end_short_backtrace::hc440a536609cc112
   8:        0x10a4a4f53 - _rust_begin_unwind
   9:        0x10a4e5803 - core::panicking::panic_fmt::h72d82fb70320b112
  10:        0x10a4e58e5 - core::result::unwrap_failed::h17c2d430a7b55215
  11:        0x10a30a506 - core::result::Result<T,E>::unwrap::h7111f71d48d18b6c
  12:        0x10a30b903 - cargo_bundle::main::h71fee85ea750209c
  13:        0x10a312d26 - std::sys_common::backtrace::__rust_begin_short_backtrace::hef5979c0066d88d1
  14:        0x10a2cd8ec - std::rt::lang_start::{{closure}}::hb6e791ad46ed2fe9
  15:        0x10a497705 - std::rt::lang_start_internal::hd120a3e2e99da107
  16:        0x10a30cce9 - _main

carlocab avatar Jul 05 '22 10:07 carlocab

I just fired up a Docker container, and it seems this happens on Linux too.

carlocab avatar Jul 05 '22 11:07 carlocab