projects
/
ppastats.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ppa stats graph
[ppastats.git]
/
src
/
html.c
diff --git
a/src/html.c
b/src/html.c
index
28fe195
..
aa4c6f1
100644
(file)
--- a/
src/html.c
+++ b/
src/html.c
@@
-19,9
+19,11
@@
#include <string.h>
#include <string.h>
+#include "chart.h"
#include "html.h"
#include "list.h"
#include "lp_ws.h"
#include "html.h"
#include "list.h"
#include "lp_ws.h"
+#include "ppastats.h"
#include <json/json.h>
#include <json/json.h>
@@
-188,28
+190,61
@@
build_data_str(struct binary_package_publishing_history **list)
return str;
}
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;
{
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) {
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);
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);
free(addcolumns_str);
free(data_str);
binary_package_publishing_history_list_free(list);
+ ppa_stats_free(ppastats);
}
}