Просмотр исходного кода

fix: listing refresh shows phase bar with byte-level progress (was raw stderr print); both install and update

clanker 1 неделя назад
Родитель
Сommit
46fcd2ba4f
2 измененных файлов с 10 добавлено и 6 удалено
  1. 5 3
      src/cli/Install.vala
  2. 5 3
      src/cli/Update.vala

+ 5 - 3
src/cli/Install.vala

@@ -34,17 +34,19 @@ private int install_main(string[] args) {
     }
 
     try {
-        printerr("Refreshing repositories...\n");
         var local_finder = new Usm.ResourceFinder();
         var resolver = new Usm.Resolver(local_finder);
         var repos = state.get_repositories();
         foreach (var repo in repos) {
-            state.refresh_list(repo, (f, c, t) => printerr(@"Refreshing list for $(repo.name): downloading $f $c/$t bytes\r"));
+            progress.begin_phase(@"Refreshing $(repo.name)");
+            state.refresh_list(repo, (f, c, t) => {
+                progress.update_phase(t > 0 ? (float)c / (float)t : 0.0f);
+            });
+            progress.end_phase();
             var listing = state.get_latest_list(repo);
             if(listing != null) {
                 resolver.load_listing(repo, listing);
             }
-            printerr("\n");
         }
 
         // Cached packages can satisfy dependencies (and act as install targets

+ 5 - 3
src/cli/Update.vala

@@ -47,15 +47,17 @@ private int update_main(string[] args) {
     }
 
     try {
-        printerr("Refreshing repositories...\n");
         var resolver = new Usm.Resolver(new Usm.ResourceFinder());
         foreach(var repo in state.get_repositories()) {
-            state.refresh_list(repo, (f, c, t) => printerr(@"Refreshing list for $(repo.name): downloading $f $c/$t bytes\r"));
+            progress.begin_phase(@"Refreshing $(repo.name)");
+            state.refresh_list(repo, (f, c, t) => {
+                progress.update_phase(t > 0 ? (float)c / (float)t : 0.0f);
+            });
+            progress.end_phase();
             var listing = state.get_latest_list(repo);
             if(listing != null) {
                 resolver.load_listing(repo, listing);
             }
-            printerr("\n");
         }
 
         // Cached packages can satisfy dependencies, including the old