X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=index%2Fzebraidx.c;h=4fabc5df02367738db3bf567bfed6b09c1867d07;hp=804a7e821677728ac9b5c29bf92c422866f8653b;hb=e4c6861efeeea654bfb00c5f0239ee258629d77f;hpb=c19bdb08393eb7b97f7783cb576f223b4fc505ed diff --git a/index/zebraidx.c b/index/zebraidx.c index 804a7e8..4fabc5d 100644 --- a/index/zebraidx.c +++ b/index/zebraidx.c @@ -1,8 +1,5 @@ -/* $Id: zebraidx.c,v 1.10 2007-11-08 09:30:05 adam Exp $ - Copyright (C) 1995-2007 - Index Data ApS - -This file is part of the Zebra server. +/* This file is part of the Zebra server. + Copyright (C) 2004-2013 Index Data Zebra is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -20,6 +17,9 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#if HAVE_CONFIG_H +#include +#endif #include #include #include @@ -31,7 +31,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include #endif -#if HAVE_ICU +#if YAZ_HAVE_ICU #include #endif #include @@ -62,7 +62,7 @@ int main(int argc, char **argv) char *database = 0; Res res = res_open(0, 0); Res default_res = res_open(0, 0); - + int trans_started = 0; #ifndef WIN32 char nbuf[100]; @@ -87,6 +87,7 @@ int main(int argc, char **argv) " drop Drop database \n" " commit Commit changes\n" " clean Clean shadow files\n" + " check:mode Check register; mode is one of: default, full, quick\n" "Options:\n" " -t Index files as (grs or text).\n" " -c Read configuration file .\n" @@ -119,7 +120,7 @@ int main(int argc, char **argv) { yaz_log(YLOG_FATAL, "Cannot read config %s", config); exit(1); - } + } zh = zebra_open(zs, 0); zebra_shadow_enable(zh, enable_commit); } @@ -142,6 +143,8 @@ int main(int argc, char **argv) cmd = 's'; else if (!strcmp(arg, "del") || !strcmp(arg, "delete")) cmd = 'd'; + else if (!strcmp(arg, "adelete")) + cmd = 'a'; else if (!strcmp(arg, "init")) { zebra_init(zh); @@ -178,6 +181,21 @@ int main(int argc, char **argv) { show_filters(zs); } + else if (!strncmp(arg, "check", 5)) + { + const char *spec = 0; + if (arg[5] == ':') + spec = arg + 6; + else if (arg[5] != '\0') + { + yaz_log(YLOG_FATAL, "missing colon after check"); + exit(1); + } + if (zebra_register_check(zh, spec) != ZEBRA_OK) + { + yaz_log(YLOG_WARN, "zebra_register_check failed"); + } + } else { yaz_log(YLOG_FATAL, "unknown command: %s", arg); @@ -196,10 +214,13 @@ int main(int argc, char **argv) switch (cmd) { case 'u': - res = zebra_repository_update(zh, arg); + res = zebra_repository_index(zh, arg, action_update); break; case 'd': - res = zebra_repository_delete(zh, arg); + res = zebra_repository_index(zh, arg, action_delete); + break; + case 'a': + res = zebra_repository_index(zh, arg, action_a_delete); break; case 's': res = zebra_repository_show(zh, arg); @@ -219,7 +240,7 @@ int main(int argc, char **argv) const char *add = zebra_errAdd(zh); yaz_log(YLOG_FATAL, "Operation failed: %s %s", zebra_errString(zh), add ? add : ""); - + if (trans_started) if (zebra_end_trans(zh) != ZEBRA_OK) yaz_log(YLOG_WARN, "zebra_end_trans failed"); @@ -239,13 +260,13 @@ int main(int argc, char **argv) zebra_get_version(version_str, sys_str); printf("Zebra %s\n", version_str); - printf("(C) 1994-2007, Index Data ApS\n"); + printf("(C) 1994-2013, Index Data ApS\n"); printf("Zebra is free software, covered by the GNU General Public License, and you are\n"); printf("welcome to change it and/or distribute copies of it under certain conditions.\n"); - printf("Configured as: %s\n", sys_str); + printf("SHA1 ID: %s\n", sys_str); if (strcmp(version_str, ZEBRAVER)) printf("zebraidx compiled version %s\n", ZEBRAVER); -#if HAVE_ICU +#if YAZ_HAVE_ICU printf("Using ICU\n"); #endif } @@ -291,6 +312,7 @@ int main(int argc, char **argv) /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab