143,6 → 143,7 |
pkg->id = tmp->id; |
pkg->name = strdup(tmp->name); |
pkg->version = strdup(tmp->version); |
pkg->group = strdup(tmp->group); |
pkg->filename = strdup(tmp->filename); |
pkg->description = strdup(tmp->description); |
list_add_tail(&pkg->list, download); |
166,6 → 167,7 |
count = http_load_file(cache_path, make_url(pkg->filename)); |
sprintf(conbuf,"%s %d bytes loaded\n",cache_path, count); |
con_write_asciiz(conbuf); |
|
if( !test_archive(cache_path)) |
list_del_pkg(pkg); |
else |
192,17 → 194,13 |
}; |
}; |
|
int build_install_list(list_t *list, collection_t *collection) |
int copy_list(list_t *list, list_t *src) |
{ |
pkg_group_t *gr; |
package_t *pkg, *tmp; |
int count = 0; |
|
list_for_each_entry(gr, &collection->groups, list) |
list_for_each_entry(tmp, src, list) |
{ |
package_t *pkg, *tmp; |
|
list_for_each_entry(tmp, &gr->packages, list) |
{ |
pkg = (package_t*)malloc(sizeof(package_t)); |
|
INIT_LIST_HEAD(&pkg->file_list); |
209,11 → 207,11 |
pkg->id = tmp->id; |
pkg->name = strdup(tmp->name); |
pkg->version = strdup(tmp->version); |
pkg->group = strdup(tmp->group); |
pkg->filename = strdup(tmp->filename); |
pkg->description = strdup(tmp->description); |
list_add_tail(&pkg->list, list); |
count++; |
} |
}; |
return count; |
} |
230,13 → 228,9 |
|
if(collection) |
{ |
pkg_group_t *gr; |
|
list_for_each_entry(gr, &collection->groups, list) |
{ |
package_t *pkg, *tmp; |
|
list_for_each_entry(tmp, &gr->packages, list) |
list_for_each_entry(tmp, &collection->packages, list) |
{ |
pkg = (package_t*)malloc(sizeof(package_t)); |
|
244,11 → 238,11 |
pkg->id = tmp->id; |
pkg->name = strdup(tmp->name); |
pkg->version = strdup(tmp->version); |
pkg->group = strdup(tmp->group); |
pkg->filename = strdup(tmp->filename); |
pkg->description = strdup(tmp->description); |
list_add_tail(&pkg->list, slist); |
count++; |
} |
}; |
}; |
return count; |
260,7 → 254,20 |
|
list_for_each_entry(pkg, list, list) |
{ |
sprintf(conbuf,"%s-%s\n", pkg->name, pkg->version); |
sprintf(conbuf,"%s-%s-%s\n", pkg->name, pkg->version, pkg->group); |
con_write_asciiz(conbuf); |
} |
} |
|
void process_task(list_t *task) |
{ |
LIST_HEAD(download_list); |
|
if(build_download_list(&download_list, task)) |
do_download(&download_list); |
|
if(!list_empty(&download_list)) |
remove_missing_packages(task, &download_list); |
|
do_install(task); |
} |