X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/a05e4467dee55248f2135dcb532b4729154d69c5..ddf0e06b99c52ed416f19432be45b71238d0b877:/server/dbupgrade.c diff --git a/server/dbupgrade.c b/server/dbupgrade.c index b4cf58e..74354b7 100644 --- a/server/dbupgrade.c +++ b/server/dbupgrade.c @@ -1,6 +1,6 @@ /* * This file is part of DisOrder - * Copyright (C) 2007 Richard Kettlewell + * Copyright (C) 2007, 2008 Richard Kettlewell * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,28 +17,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA */ - -#include -#include "types.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "syscalls.h" -#include "log.h" -#include "defs.h" -#include "kvp.h" -#include "trackdb.h" -#include "trackdb-int.h" -#include "mem.h" -#include "configuration.h" -#include "unicode.h" +#include "disorder-server.h" static DB_TXN *global_tid; @@ -84,13 +63,6 @@ static void help(void) { exit(0); } -/* display version number and terminate */ -static void version(void) { - xprintf("%s", disorder_version_string); - xfclose(stdout); - exit(0); -} - /** @brief Visit each key in a database and call @p callback * @return 0 or DB_LOCK_DEADLOCK * @@ -143,9 +115,9 @@ static int scan_core(const char *name, DB *db, * Everything happens inside the @p global_tid tranasction. @p callback * should return 0 or DB_LOCK_DEADLOCK. */ -static void scan(const char *name, DB *db, - int (*callback)(const char *name, DB *db, DBC *c, - DBT *k, DBT *d)) { +static void scandb(const char *name, DB *db, + int (*callback)(const char *name, DB *db, DBC *c, + DBT *k, DBT *d)) { info("scanning %s", name); for(;;) { global_tid = trackdb_begin_transaction(); @@ -317,16 +289,16 @@ static void upgrade(void) { /* Normalize keys and values as required. We will also remove aliases as * they will be regenerated when we re-noticed the tracks. */ info("renormalizing keys"); - scan("tracks.db", trackdb_tracksdb, remove_aliases_normalize_keys); - scan("prefs.db", trackdb_prefsdb, normalize_keys); - scan("global.db", trackdb_globaldb, normalize_keys); - scan("noticed.db", trackdb_noticeddb, normalize_values); + scandb("tracks.db", trackdb_tracksdb, remove_aliases_normalize_keys); + scandb("prefs.db", trackdb_prefsdb, normalize_keys); + scandb("global.db", trackdb_globaldb, normalize_keys); + scandb("noticed.db", trackdb_noticeddb, normalize_values); /* search.db and tags.db we will rebuild */ info("regenerating search database and aliases"); truncate_database("search.db", trackdb_searchdb); truncate_database("tags.db", trackdb_tagsdb); /* Regenerate the search database and aliases */ - scan("tracks.db", trackdb_tracksdb, renotice); + scandb("tracks.db", trackdb_tracksdb, renotice); /* Finally update the database version */ snprintf(buf, sizeof buf, "%ld", config->dbversion); trackdb_set_global("_dbversion", buf, 0); @@ -342,7 +314,7 @@ int main(int argc, char **argv) { while((n = getopt_long(argc, argv, "hVc:dDSsxX", options, 0)) >= 0) { switch(n) { case 'h': help(); - case 'V': version(); + case 'V': version("disorder-dbupgrade"); case 'c': configfile = optarg; break; case 'd': debugging = 1; break; case 'D': debugging = 0; break;