Start work on ICU based regexp searches
[idzebra-moved-to-github.git] / index / zebraidx.c
index a9efb40..1baaedd 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of the Zebra server.
-   Copyright (C) 1994-2010 Index Data
+   Copyright (C) 1994-2011 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
@@ -17,6 +17,9 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
 */
 
+#if HAVE_CONFIG_H
+#include <config.h>
+#endif
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -84,6 +87,7 @@ int main(int argc, char **argv)
         " drop <db>     Drop database <db>\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 <type>     Index files as <type> (grs or text).\n"
        " -c <config>   Read configuration file <config>.\n"
@@ -177,16 +181,21 @@ int main(int argc, char **argv)
                 {
                     show_filters(zs);
                 }
-               else if (!strcmp(arg, "check0"))
-               {
-                    if (zebra_register_check(zh, 0) != ZEBRA_OK)
-                        yaz_log(YLOG_WARN, "register check failed");
-               }
-               else if (!strcmp(arg, "check1") || !strcmp(arg, "check"))
+               else if (!strncmp(arg, "check", 5))
                {
-                    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);