diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b80be8..816969c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## unreleased * run prune in temp folder +* hide cursor while pruning ## 0.9.1 diff --git a/src/main.rs b/src/main.rs index fd6338e..20cf564 100644 --- a/src/main.rs +++ b/src/main.rs @@ -79,6 +79,13 @@ fn main() -> Result<()> { } fn run(args: FeaturesArgs) -> Result<()> { + let _ = ctrlc::set_handler(|| { + let term = Term::stdout(); + term.show_cursor().expect("could not enable cursor"); + + exit(0); + }); + if let Some(sub) = args.sub { match sub { FeaturesSubCommands::Prune { @@ -96,13 +103,6 @@ fn run(args: FeaturesArgs) -> Result<()> { display.set_selected_dep(name)? } - let _ = ctrlc::set_handler(|| { - let term = Term::stdout(); - term.show_cursor().expect("could not enable cursor"); - - exit(0); - }); - display.start()?; } diff --git a/src/prune/display.rs b/src/prune/display.rs index c99b57c..597b55b 100644 --- a/src/prune/display.rs +++ b/src/prune/display.rs @@ -54,6 +54,12 @@ impl Display { pub fn start(&self) -> Result<()> { writeln!(&self.term, "workspace [{}]", self.feature_count)?; + self.term.hide_cursor()?; + Ok(()) + } + + pub fn finish(&self) -> Result<()> { + self.term.show_cursor()?; Ok(()) } diff --git a/src/prune/mod.rs b/src/prune/mod.rs index 41c49d7..333fe28 100644 --- a/src/prune/mod.rs +++ b/src/prune/mod.rs @@ -208,6 +208,8 @@ fn prune_features( display.display_known_features_notice()?; } + display.finish()?; + Ok(features_map) }