Rolling tweaks
[idzebra-moved-to-github.git] / index / main.c
index bedca40..1ac5ce0 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: main.c,v 1.94 2002-08-05 14:08:08 adam Exp $
+/* $Id: main.c,v 1.97 2002-09-13 10:33:17 heikki Exp $
    Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002
    Index Data Aps
 
@@ -49,6 +49,7 @@ int main (int argc, char **argv)
     int nsections = 0;
     int disableCommit = 0;
     size_t mem_max = 0;
+    int trans_started=0;
 #if HAVE_SYS_TIMES_H
     struct tms tms1, tms2;
     struct timeval start_time, end_time;
@@ -84,6 +85,7 @@ int main (int argc, char **argv)
     rGroupDef.databaseNamePath = 0;
     rGroupDef.explainDatabase = 0;
     rGroupDef.fileVerboseLimit = 100000;
+    rGroupDef.followLinks = -1;
 
     prog = *argv;
     if (argc < 2)
@@ -105,12 +107,13 @@ int main (int argc, char **argv)
        " -s            Show analysis on stdout, but do no work.\n"
        " -v <level>    Set logging to <level>.\n"
         " -l <file>     Write log to <file>.\n"
+        " -L            Don't follow symbolic links.\n"
         " -f <n>        Display information for the first <n> records.\n"
         " -V            Show version.\n", *argv
                  );
         exit (1);
     }
-    while ((ret = options ("sVt:c:g:d:m:v:nf:l:"
+    while ((ret = options ("sVt:c:g:d:m:v:nf:l:L"
                           , argv, argc, &arg)) != -2)
     {
         if (ret == 0)
@@ -119,11 +122,15 @@ int main (int argc, char **argv)
             {
                 if (!zs)
                 {
+                   const char *config = configName ? configName : "zebra.cfg";
                     logf (LOG_LOG, "Zebra version %s %s",
                           ZEBRAVER, ZEBRADATE);
-                    zs = zebra_start (configName ? configName : "zebra.cfg");
+                    zs = zebra_start (config);
                     if (!zs)
+                    {
+                       yaz_log (LOG_FATAL, "Cannot read config %s", config);
                         exit (1);
+                   }   
                     zh = zebra_open (zs);
                     if (disableCommit)
                         zebra_shadow_enable (zh, 0);
@@ -183,7 +190,11 @@ int main (int argc, char **argv)
             {
                 rGroupDef.path = arg;
                 zebra_set_group (zh, &rGroupDef);
-                zebra_begin_trans (zh);
+               if (!trans_started)
+               {
+                   trans_started=1;
+                    zebra_begin_trans (zh);
+               }
 
                 switch (cmd)
                 {
@@ -201,8 +212,6 @@ int main (int argc, char **argv)
                 default:
                     nsections = 0;
                 }
-                cmd = 0;
-                zebra_end_trans (zh);
                 log_event_end (NULL, NULL);
             }
         }
@@ -242,9 +251,15 @@ int main (int argc, char **argv)
             rGroupDef.recordType = arg;
         else if (ret == 'n')
             disableCommit = 1;
+        else if (ret == 'L')
+            rGroupDef.followLinks = 0;
         else
             logf (LOG_WARN, "unknown option '-%s'", arg);
-    }
+    } /* while arg */
+
+    if (trans_started)
+        zebra_end_trans (zh);
+
     zebra_close (zh);
     zebra_stop (zs);
 #if HAVE_SYS_TIMES_H