X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fzebraidx.c;h=0ada26b81b37f9204d5efaa31d8b36c27a1bf500;hb=de044fbb534d2db022ca965d0328dac7a6edf032;hp=3291a79aa8df474e77a571b1071e29d587aedf28;hpb=a030c87bc444608639905eca95e29f84a4f1d991;p=idzebra-moved-to-github.git diff --git a/index/zebraidx.c b/index/zebraidx.c index 3291a79..0ada26b 100644 --- a/index/zebraidx.c +++ b/index/zebraidx.c @@ -17,6 +17,9 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#if HAVE_CONFIG_H +#include +#endif #include #include #include @@ -59,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]; @@ -84,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" @@ -116,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); } @@ -177,16 +181,21 @@ int main(int argc, char **argv) { show_filters(zs); } - else if (!strcmp(arg, "check0")) + else if (!strncmp(arg, "check", 5)) { - if (zebra_register_check(zh, 0) != ZEBRA_OK) - yaz_log(YLOG_WARN, "register check failed"); - } - else if (!strcmp(arg, "check1") || !strcmp(arg, "check")) - { - if (zebra_register_check(zh, 1) != ZEBRA_OK) - yaz_log(YLOG_WARN, "register check failed"); - } + 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); @@ -231,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");