static void display_published_binaries(const char *owner, const char *ppa)
{
- struct binary_package_publishing_history **e_cur, **list;
- char *archive_url = get_archive_url(owner, ppa);
+ struct ppa_stats *ppastats;
+ struct package_stats **packages;
+ struct version_stats **versions;
+ struct distro_stats **distros;
+ struct arch_stats **archs;
- list = get_binary_package_publishing_history_list(archive_url);
- free(archive_url);
+ ppastats = create_ppa_stats(owner, ppa);
+ packages = ppastats->packages;
+ while (packages && *packages) {
+ struct package_stats *p = *packages;
- if (!list) {
- fprintf(stderr, "Failed to retrieve PPA information\n");
- exit(EXIT_FAILURE);
- }
+ printf("%s (%d)\n", p->name, p->download_count);
+
+ versions = p->versions;
+
+ while (*versions) {
+ printf("\t%s (%d)\n", (*versions)->version,
+ (*versions)->download_count);
+
+ distros = (*versions)->distros;
+
+ while (*distros) {
+ printf("\t\t%s (%d)\n",
+ (*distros)->name,
+ (*distros)->download_count);
+
+ archs = (*distros)->archs;
+
+ while (*archs) {
+ printf("\t\t\t%s (%d)\n",
+ (*archs)->name,
+ (*archs)->download_count);
+
+ archs++;
+ }
+
+ distros++;
+ }
+
+ versions++;
+ }
- e_cur = list;
- while (*e_cur) {
- struct binary_package_publishing_history *binary;
- const struct distro_arch_series *arch;
- const struct distro_series *distro;
-
- binary = *e_cur;
- arch = get_distro_arch_series(binary->distro_arch_series_link);
- distro = get_distro_series(arch->distroseries_link);
-
- printf("%s %s %s(%s): %d\n",
- binary->binary_package_name,
- binary->binary_package_version,
- distro->name,
- arch->architecture_tag,
- get_download_count(binary->self_link));
- e_cur++;
+ packages++;
}
- binary_package_publishing_history_list_free(list);
+ ppa_stats_free(ppastats);
}
static struct option long_options[] = {