All patches
[idzebra-moved-to-github.git] / index / zebraidx.c
index f6a84ef..31cbd06 100644 (file)
@@ -1,8 +1,5 @@
-/* $Id: zebraidx.c,v 1.12 2008-01-17 13:56:18 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) 1994-2009 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
@@ -75,6 +72,8 @@ int main(int argc, char **argv)
     sprintf(nbuf, "%.40s(%ld)", *argv, (long) getpid());
     yaz_log_init_prefix(nbuf);
 #endif
+    /* For indexing driver support */
+    char *useIndexDriver = NULL;
     prog = *argv;
     if (argc < 2)
     {
@@ -99,13 +98,18 @@ int main(int argc, char **argv)
         " -l <file>     Write log to <file>.\n"
         " -L            Don't follow symbolic links.\n"
         " -f <n>        Display information for the first <n> records.\n"
+        " -i <driver>   Select which index driver to use.\n"
+        "               Note:   when using a driver, the <dir> gets passed\n"
+        "                       to the driver as an argument.\n"
+        "               Current drivers available:\n"
+        "               -       indexplugin_mysql\n\n"
         " -V            Show version.\n", *argv
                  );
         exit(1);
     }
     res_set(default_res, "profilePath", DEFAULT_PROFILE_PATH);
     res_set(default_res, "modulePath", DEFAULT_MODULE_PATH);
-    while ((ret = options("sVt:c:g:d:m:v:nf:l:L", argv, argc, &arg)) != -2)
+    while ((ret = options("sVt:c:g:d:m:v:nf:l:L:i:", argv, argc, &arg)) != -2)
     {
         if (ret == 0)
         {
@@ -198,13 +202,13 @@ int main(int argc, char **argv)
                 switch (cmd)
                 {
                 case 'u':
-                    res = zebra_repository_index(zh, arg, action_update);
+                    res = zebra_repository_index(zh, arg, action_update, useIndexDriver);
                     break;
                 case 'd':
-                    res = zebra_repository_index(zh, arg, action_delete);
+                    res = zebra_repository_index(zh, arg, action_delete, useIndexDriver);
                     break;
                 case 'a':
-                    res = zebra_repository_index(zh, arg, action_a_delete);
+                    res = zebra_repository_index(zh, arg, action_a_delete, useIndexDriver);
                     break;
                 case 's':
                     res = zebra_repository_show(zh, arg);
@@ -244,10 +248,10 @@ 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-2009, 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 YAZ_HAVE_ICU
@@ -256,6 +260,8 @@ int main(int argc, char **argv)
         }
         else if (ret == 'v')
             yaz_log_init_level(yaz_log_mask_str(arg));
+        else if (ret == 'i')
+            useIndexDriver = arg;
        else if (ret == 'l')
            yaz_log_init_file(arg);
         else if (ret == 'm')
@@ -296,6 +302,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