summaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main.c')
-rw-r--r--main.c27
1 files changed, 25 insertions, 2 deletions
diff --git a/main.c b/main.c
index 8e3dbd2..a109192 100644
--- a/main.c
+++ b/main.c
@@ -16,6 +16,7 @@ int usage(void)
printf("Commands:\n");
printf("\n");
printf("init [{basedir}] Initializes the database\n");
+ printf("upgrade {basedir} Upgrade to a new version\n");
printf("adduser {basedir} [{uid}] Adds a new user\n");
printf("httpd {basedir} Starts the HTTPD daemon\n");
printf("purge {basedir} Purges old data\n");
@@ -76,6 +77,19 @@ int main(int argc, char *argv[])
return initdb(basedir);
}
+ if (strcmp(cmd, "upgrade") == 0) {
+ int ret;
+
+ /* database upgrade */
+ if ((basedir = GET_ARGV()) == NULL)
+ return usage();
+
+ if ((ret = srv_open(basedir, 1)) == 1)
+ srv_log(xs_dup("OK"));
+
+ return ret;
+ }
+
if (strcmp(cmd, "markdown") == 0) {
/* undocumented, for testing only */
xs *c = xs_readall(stdin);
@@ -88,7 +102,7 @@ int main(int argc, char *argv[])
if ((basedir = GET_ARGV()) == NULL)
return usage();
- if (!srv_open(basedir)) {
+ if (!srv_open(basedir, 0)) {
srv_log(xs_fmt("error opening database at %s", basedir));
return 1;
}
@@ -142,12 +156,21 @@ int main(int argc, char *argv[])
}
if (strcmp(cmd, "timeline") == 0) {
- xs *list = local_list(&snac, 0xfffffff);
+#if 0
+ xs *list = local_list(&snac, XS_ALL);
xs *body = html_timeline(&snac, list, 1);
printf("%s\n", body);
user_free(&snac);
srv_free();
+#endif
+
+ xs *idx = xs_fmt("%s/private.idx", snac.basedir);
+ xs *list = index_list_desc(idx, 256);
+ xs *tl = timeline_top_level(&snac, list);
+
+ xs *j = xs_json_dumps_pp(tl, 4);
+ printf("%s\n", j);
return 0;
}