Introduce spec for zebra_register_check
[idzebra-moved-to-github.git] / index / zebraidx.c
index a9efb40..48cd1fe 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
@@ -177,16 +177,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);