X-Git-Url: http://git.bytex64.net/?a=blobdiff_plain;f=tools%2Fblerglatest.c;h=eaf887e5e72acf45f5d1f3f65202cbea96e9d353;hb=a4fca9b6cbc780b602b86ccc5819dc0ee99d5771;hp=727eb18aec9934861b7c032fb80dbf99e9b543c5;hpb=7d8ef1902ef3030991b50a9414116a0615ac49d9;p=blerg.git diff --git a/tools/blerglatest.c b/tools/blerglatest.c index 727eb18..eaf887e 100644 --- a/tools/blerglatest.c +++ b/tools/blerglatest.c @@ -1,3 +1,6 @@ +/* Blerg is (C) 2011 The Dominion of Awesome, and is distributed under a + * BSD-style license. Please see the COPYING file for details. + */ #include #include #include @@ -9,6 +12,7 @@ #include "database.h" #include "json.h" #include "config.h" +#include "configuration.h" yajl_gen_config yajl_config = {0, 0}; @@ -70,7 +74,7 @@ void things_sort(struct things *things) { qsort(things->arr, things->len, sizeof(struct thing), thing_compare); } -struct things * latest_things(const char *path, const char *file) { +struct things * latest_things(const char *path, const char *file, int minlen) { DIR* d; struct dirent *f; struct things * things = things_alloc(); @@ -79,8 +83,14 @@ struct things * latest_things(const char *path, const char *file) { int i; d = opendir(path); + if (d == NULL) { + fprintf(stderr, "Could not open %s: ", path); + perror(""); + exit(1); + } while (f = readdir(d)) { if (f->d_name[0] == '.') continue; + if (minlen > 0 && strlen(f->d_name) < minlen) continue; if (file) { snprintf(filename, 512, "%s/%s/%s", path, f->d_name, file); } else { @@ -98,7 +108,7 @@ struct things * latest_things(const char *path, const char *file) { void latest_tags(yajl_gen g) { int i; - struct things * things = latest_things(HASH_TAGS_PATH, NULL); + struct things * things = latest_things(blergconf.hash_tags_path, NULL, 3); unsigned int count = (things->len >= 50 ? 50 : things->len); yajl_gen_array_open(g); @@ -112,7 +122,7 @@ void latest_tags(yajl_gen g) { void latest_records(yajl_gen g) { int i; - struct things * things = latest_things(DATA_PATH, "meta"); + struct things * things = latest_things(blergconf.data_path, "meta", 0); unsigned int count = (things->len >= 50 ? 50 : things->len); yajl_gen_array_open(g); @@ -135,6 +145,9 @@ int main(int argc, char *argv[]) { const unsigned char *buf; unsigned int len; + if (!blerg_init()) + exit(1); + yajl_gen g = yajl_gen_alloc(&yajl_config, NULL); yajl_gen_map_open(g);