|
@@ -5,10 +5,14 @@ namespace Binman {
|
|
|
|
|
|
public class Updater {
|
|
public class Updater {
|
|
|
|
|
|
|
|
+ public signal void progress_updated(string component_name, int current_component, int total_components, int64 bytes_downloaded, int64? bytes_total);
|
|
|
|
+
|
|
public void update(Enumerable<CompositionComponent>? components = null) throws Error{
|
|
public void update(Enumerable<CompositionComponent>? components = null) throws Error{
|
|
var comps = components ?? get_composition().to_series();
|
|
var comps = components ?? get_composition().to_series();
|
|
|
|
|
|
- foreach (var component in comps) {
|
|
|
|
|
|
+ foreach (var component_item in comps.with_positions()) {
|
|
|
|
+ var component = component_item.item;
|
|
|
|
+ progress_updated(component.name, component_item.position, comps.count(), 0, null);
|
|
var folder = File.new_build_filename("/var/binman/", component.name);
|
|
var folder = File.new_build_filename("/var/binman/", component.name);
|
|
if(!folder.query_exists()) {
|
|
if(!folder.query_exists()) {
|
|
folder.make_directory_with_parents();
|
|
folder.make_directory_with_parents();
|
|
@@ -20,7 +24,7 @@ namespace Binman {
|
|
min_serial = new ManifestFile(latest_syml).read_header().serial;
|
|
min_serial = new ManifestFile(latest_syml).read_header().serial;
|
|
}
|
|
}
|
|
|
|
|
|
- download_manifest(component, min_serial, null);
|
|
|
|
|
|
+ download_manifest(component, min_serial, (c, t) => progress_updated(component.name, component_item.position, comps.count(), c, t));
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|