#include <string.h>
+#include "chart.h"
#include "html.h"
#include "list.h"
#include "lp_ws.h"
+#include "ppastats.h"
#include <json/json.h>
return str;
}
-void ppa_to_html(const char *owner, const char *ppa, const char *package_status)
+static char *get_path(const char *dir, const char *file)
+{
+ char *path = malloc(strlen(dir)+1+strlen(file)+1);
+
+ strcpy(path, dir);
+ strcat(path, "/");
+ strcat(path, file);
+
+ return path;
+}
+
+void
+ppa_to_html(const char *owner,
+ const char *ppa,
+ const char *package_status,
+ const char *output_dir)
{
struct binary_package_publishing_history **list;
- char *archive_url = get_archive_url(owner, ppa);
- char *addcolumns_str;
- char *data_str;
+ char *archive_url, *addcolumns_str, *data_str, *path;
+ FILE *f;
+ struct ppa_stats *ppastats;
+ struct daily_download_total **totals;
+
+ ppastats = create_ppa_stats(owner, ppa, package_status);
+ totals = ppastats->daily_download_totals;
+ path = get_path(output_dir, "ppa.html");
+ generate_chart(path, "PPA Statistics", ppa, totals);
+ free(path);
+
+ archive_url = get_archive_url(owner, ppa);
list = get_binary_package_publishing_history_list(archive_url,
package_status);
free(archive_url);
if (!list) {
- fprintf(stderr, "Failed to retrieve PPA information\n");
+ fprintf(stderr, "ERROR: Failed to retrieve PPA information\n");
exit(EXIT_FAILURE);
}
addcolumns_str = build_addcolums_str(list);
data_str = build_data_str(list);
- printf(HTML_TEMPLATE, addcolumns_str, data_str);
+ path = get_path(output_dir, "index.html");
+ f = fopen(path, "w");
+ if (f) {
+ fprintf(f, HTML_TEMPLATE, addcolumns_str, data_str);
+ fclose(f);
+ } else {
+ fprintf(stderr, "ERROR: failed to write %s\n", path);
+ }
+ free(path);
free(addcolumns_str);
free(data_str);
binary_package_publishing_history_list_free(list);
+ ppa_stats_free(ppastats);
}