From 513b1cf94cb7a1a849af088ba9e34f035b6ce474 Mon Sep 17 00:00:00 2001 From: arctic-hen7 Date: Thu, 5 Jan 2023 14:39:52 +1100 Subject: [PATCH] feat(cli): added support for `cargo` colors --- packages/perseus-cli/src/build.rs | 5 ++++- packages/perseus-cli/src/check.rs | 9 ++++++--- packages/perseus-cli/src/cmd.rs | 1 + packages/perseus-cli/src/export.rs | 5 ++++- packages/perseus-cli/src/export_error_page.rs | 1 + packages/perseus-cli/src/install.rs | 5 ++++- packages/perseus-cli/src/serve.rs | 3 ++- packages/perseus-cli/src/snoop.rs | 2 ++ packages/perseus-cli/src/tinker.rs | 3 ++- 9 files changed, 26 insertions(+), 8 deletions(-) diff --git a/packages/perseus-cli/src/build.rs b/packages/perseus-cli/src/build.rs index 8cf7cd154b..6c64ccd61b 100644 --- a/packages/perseus-cli/src/build.rs +++ b/packages/perseus-cli/src/build.rs @@ -92,7 +92,8 @@ pub fn build_internal( vec![ ("PERSEUS_ENGINE_OPERATION", "build"), ("CARGO_TARGET_DIR", "dist/target_engine"), - ("RUSTFLAGS", "--cfg=engine") + ("RUSTFLAGS", "--cfg=engine"), + ("CARGO_TERM_COLOR", "always") ] )?); @@ -137,11 +138,13 @@ pub fn build_internal( vec![ ("CARGO_TARGET_DIR", "dist/target_wasm"), ("RUSTFLAGS", &wasm_release_rustflags), + ("CARGO_TERM_COLOR", "always"), ] } else { vec![ ("CARGO_TARGET_DIR", "dist/target_wasm"), ("RUSTFLAGS", "--cfg=client"), + ("CARGO_TERM_COLOR", "always"), ] } )?); diff --git a/packages/perseus-cli/src/check.rs b/packages/perseus-cli/src/check.rs index e18403139c..66f2192dcd 100644 --- a/packages/perseus-cli/src/check.rs +++ b/packages/perseus-cli/src/check.rs @@ -123,7 +123,8 @@ fn cargo_check( // and the browser simultaneously (different targets, so no // commonalities gained by one directory) ("CARGO_TARGET_DIR", "dist/target_engine"), - ("RUSTFLAGS", "--cfg=engine") + ("RUSTFLAGS", "--cfg=engine"), + ("CARGO_TERM_COLOR", "always") ] )?); @@ -143,7 +144,8 @@ fn cargo_check( &browser_msg, vec![ ("CARGO_TARGET_DIR", "dist/target_wasm"), - ("RUSTFLAGS", "--cfg=client") + ("RUSTFLAGS", "--cfg=client"), + ("CARGO_TERM_COLOR", "always") ] )?); @@ -185,7 +187,8 @@ fn run_static_generation( vec![ ("PERSEUS_ENGINE_OPERATION", "build"), ("CARGO_TARGET_DIR", "dist/target_engine"), - ("RUSTFLAGS", "--cfg=engine") + ("RUSTFLAGS", "--cfg=engine"), + ("CARGO_TERM_COLOR", "always") ] )?); diff --git a/packages/perseus-cli/src/cmd.rs b/packages/perseus-cli/src/cmd.rs index e3be3cb120..9654d7d7b1 100644 --- a/packages/perseus-cli/src/cmd.rs +++ b/packages/perseus-cli/src/cmd.rs @@ -34,6 +34,7 @@ pub fn run_cmd( .args([shell_param, &cmd]) .envs(envs) .current_dir(dir) + // A pipe is set for stdio .output() .map_err(|err| ExecutionError::CmdExecFailed { cmd, source: err })?; diff --git a/packages/perseus-cli/src/export.rs b/packages/perseus-cli/src/export.rs index da8c1bc351..08f94d8768 100644 --- a/packages/perseus-cli/src/export.rs +++ b/packages/perseus-cli/src/export.rs @@ -203,7 +203,8 @@ pub fn export_internal( vec![ ("PERSEUS_ENGINE_OPERATION", "export"), ("CARGO_TARGET_DIR", "dist/target_engine"), - ("RUSTFLAGS", "--cfg=engine") + ("RUSTFLAGS", "--cfg=engine"), + ("CARGO_TERM_COLOR", "always") ] )?); @@ -248,11 +249,13 @@ pub fn export_internal( vec![ ("CARGO_TARGET_DIR", "dist/target_wasm"), ("RUSTFLAGS", &wasm_release_rustflags), + ("CARGO_TERM_COLOR", "always"), ] } else { vec![ ("CARGO_TARGET_DIR", "dist/target_wasm"), ("RUSTFLAGS", "--cfg=client"), + ("CARGO_TERM_COLOR", "always"), ] } )?); diff --git a/packages/perseus-cli/src/export_error_page.rs b/packages/perseus-cli/src/export_error_page.rs index 3d8f237b35..91d881b19e 100644 --- a/packages/perseus-cli/src/export_error_page.rs +++ b/packages/perseus-cli/src/export_error_page.rs @@ -28,6 +28,7 @@ pub fn export_error_page( ("PERSEUS_ENGINE_OPERATION", "export_error_page"), ("CARGO_TARGET_DIR", "dist/target_engine"), ("RUSTFLAGS", "--cfg=engine"), + ("CARGO_TERM_COLOR", "always"), ], || {}, )?; diff --git a/packages/perseus-cli/src/install.rs b/packages/perseus-cli/src/install.rs index 9fb58a5e4e..bee19fef00 100644 --- a/packages/perseus-cli/src/install.rs +++ b/packages/perseus-cli/src/install.rs @@ -112,7 +112,10 @@ impl Tools { &workspace_root, &lf_spinner, &lf_msg, - vec![("RUSTFLAGS", "--cfg=engine")], + vec![ + ("RUSTFLAGS", "--cfg=engine"), + ("CARGO_TERM_COLOR", "always"), + ], ) .map_err(|err| InstallError::LockfileGenerationFailed { source: err })?; if exit_code != 0 { diff --git a/packages/perseus-cli/src/serve.rs b/packages/perseus-cli/src/serve.rs index 864630663f..11cede7209 100644 --- a/packages/perseus-cli/src/serve.rs +++ b/packages/perseus-cli/src/serve.rs @@ -85,7 +85,8 @@ fn build_server( &sb_msg, vec![ ("CARGO_TARGET_DIR", "dist/target_engine"), - ("RUSTFLAGS", "--cfg=engine") + ("RUSTFLAGS", "--cfg=engine"), + ("CARGO_TERM_COLOR", "always") ] )?); diff --git a/packages/perseus-cli/src/snoop.rs b/packages/perseus-cli/src/snoop.rs index cc292badae..30d35b70e3 100644 --- a/packages/perseus-cli/src/snoop.rs +++ b/packages/perseus-cli/src/snoop.rs @@ -4,6 +4,8 @@ use crate::parse::{Opts, SnoopServeOpts}; use crate::{errors::*, get_user_crate_name}; use std::path::PathBuf; +// NOTE: Cargo colors are left to the terminal directly here. + /// Runs static generation processes directly so the user can see detailed logs. /// This is commonly used for allowing users to see `dbg!` and the like in their /// builder functions. diff --git a/packages/perseus-cli/src/tinker.rs b/packages/perseus-cli/src/tinker.rs index 6a84738f74..97b762a7ac 100644 --- a/packages/perseus-cli/src/tinker.rs +++ b/packages/perseus-cli/src/tinker.rs @@ -63,7 +63,8 @@ pub fn tinker_internal( vec![ ("PERSEUS_ENGINE_OPERATION", "tinker"), ("CARGO_TARGET_DIR", "dist/target_engine"), - ("RUSTFLAGS", "--cfg=engine") + ("RUSTFLAGS", "--cfg=engine"), + ("CARGO_TERM_COLOR", "always") ] )?);