chiark / gitweb /
otter(1): Do not do progress bars if --quiet
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 21 May 2021 13:32:26 +0000 (14:32 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 21 May 2021 13:32:26 +0000 (14:32 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/bin/otter.rs
src/termprogress.rs

index e58b7f2b718b21d17d0ecea843e2612cdc63969e..518fb047df2ff456678aabf539dfc37e08b59dfe 100644 (file)
@@ -113,6 +113,15 @@ impl MainOpts {
       MgmtGameUpdateMode::Online,
     )
   }
+
+  #[throws(AE)]
+  fn progressbar(&self) -> Box<dyn termprogress::Reporter> {
+    if self.verbose > 0 {
+      termprogress::new()
+    } else {
+      termprogress::NullReporter::new()
+    }
+  }
 }
 
 #[derive(Default,Debug)]
@@ -829,7 +838,7 @@ mod reset_game {
           if ma.verbose >= 0 {
             eprintln!("Re-uploading bundles: {}", why);
           }
-          let progress = termprogress::new();
+          let progress = ma.progressbar()?;
           let mut progress = termprogress::Nest::new(local.len(), progress);
           for bundle in local {
             bundle.upload(&ma, &mut chan, &mut progress)?;
@@ -1633,7 +1642,7 @@ mod upload_bundle {
   fn call(_sc: &Subcommand, ma: MainOpts, args: Vec<String>) {
     let args = parse_args::<Args,_>(args, &subargs, &ok_id, None);
     let mut chan = ma.access_game()?;
-    let mut progress = termprogress::new();
+    let mut progress = ma.progressbar()?;
     let for_upload = BundleForUpload::prepare(args.bundle_file)?;
     let bundle = for_upload.upload(&ma, &mut chan, &mut *progress)?;
     println!("{}", bundle);
index b7a2d288483806a3e767d736f4d52cf7f2279aba..0ab271a4637236ae1b720e051c1adfbb8a301848 100644 (file)
@@ -15,6 +15,9 @@ pub trait Reporter {
 }
 
 pub struct NullReporter;
+impl NullReporter {
+  pub fn new() -> Box<dyn Reporter> { Box::new(NullReporter) }
+}
 
 #[allow(unused_variables)]
 impl Reporter for NullReporter {