diff --git a/Cargo.lock b/Cargo.lock index 8b162510e..ae71f53d3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2276,6 +2276,7 @@ dependencies = [ name = "typst-cli" version = "0.3.0" dependencies = [ + "atty", "chrono", "clap 4.2.5", "clap_complete", diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 8f90c3aae..ad08d99b3 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -22,6 +22,7 @@ doc = false [dependencies] typst = { path = ".." } typst-library = { path = "../library" } +atty = "0.2" chrono = { version = "0.4", default-features = false, features = ["clock", "std"] } clap = { version = "4.2.4", features = ["derive", "env"] } codespan-reporting = "0.11" diff --git a/cli/src/main.rs b/cli/src/main.rs index 476a82eee..4e9bd43e1 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -9,6 +9,7 @@ use std::io::{self, Write}; use std::path::{Path, PathBuf}; use std::process; +use atty::Stream; use clap::Parser; use codespan_reporting::diagnostic::{Diagnostic, Label}; use codespan_reporting::term::{self, termcolor}; @@ -282,7 +283,9 @@ fn status(command: &CompileSettings, status: Status) -> io::Result<()> { let color = status.color(); let mut w = StandardStream::stderr(ColorChoice::Auto); - write!(w, "{esc}c{esc}[1;1H")?; + if atty::is(Stream::Stderr) { + write!(w, "{esc}c{esc}[1;1H")?; + } w.set_color(&color)?; write!(w, "watching")?;