X-Git-Url: http://git.wpitchoune.net/gitweb/?p=ppastats.git;a=blobdiff_plain;f=src%2Fmain.c;fp=src%2Fmain.c;h=662a87eb00d684b630f3fae3d944ddbe8321b752;hp=02861eacc288059a5bda53029e0a3e25b28e5e37;hb=05efb0b6dfba33b3dc441b4bbb795d056d404399;hpb=ed75fc7814a293378aedf473a29c2f161af673b4 diff --git a/src/main.c b/src/main.c index 02861ea..662a87e 100644 --- a/src/main.c +++ b/src/main.c @@ -33,37 +33,52 @@ static const char *program_name; 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[] = {