2 * Copyright (C) 1994-2002, Index Data
5 * $Id: main.c,v 1.83 2002-04-04 14:14:13 adam Exp $
16 #include <yaz/data1.h>
21 int main (int argc, char **argv)
28 int disableCommit = 0;
33 struct recordGroup rGroupDef;
41 sprintf(nbuf, "%.40s(%d)", *argv, getpid());
42 yaz_log_init_prefix (nbuf);
45 rGroupDef.groupName = NULL;
46 rGroupDef.databaseName = NULL;
47 rGroupDef.path = NULL;
48 rGroupDef.recordId = NULL;
49 rGroupDef.recordType = NULL;
50 rGroupDef.flagStoreData = -1;
51 rGroupDef.flagStoreKeys = -1;
53 rGroupDef.databaseNamePath = 0;
54 rGroupDef.explainDatabase = 0;
55 rGroupDef.fileVerboseLimit = 100000;
60 fprintf (stderr, "%s [options] command <dir> ...\n"
62 " update <dir> Update index with files below <dir>.\n"
63 " If <dir> is empty filenames are read from stdin.\n"
64 " delete <dir> Delete index with files below <dir>.\n"
65 " commit Commit changes\n"
66 " clean Clean shadow files\n"
68 " -t <type> Index files as <type> (grs or text).\n"
69 " -c <config> Read configuration file <config>.\n"
70 " -g <group> Index files according to group settings.\n"
71 " -d <database> Records belong to Z39.50 database <database>.\n"
72 " -m <mbytes> Use <mbytes> before flushing keys to disk.\n"
73 " -n Don't use shadow system.\n"
74 " -s Show analysis on stdout, but do no work.\n"
75 " -v <level> Set logging to <level>.\n"
76 " -l <file> Write log to <file>.\n"
77 " -f <n> Display information for the first <n> records.\n"
78 " -V Show version.\n", *argv
82 while ((ret = options ("sVt:c:g:d:m:v:nf:l:"
83 , argv, argc, &arg)) != -2)
87 if(cmd == 0) /* command */
92 logf (LOG_LOG, "zmbol version %s %s",
95 logf (LOG_LOG, "zebra version %s %s",
98 zs = zebra_start (configName ? configName : "zebra.cfg");
100 zh = zebra_open (zs);
102 if (rGroupDef.databaseName)
103 zebra_select_database (zh, rGroupDef.databaseName);
105 zebra_select_database (zh, "Default");
107 if (!strcmp (arg, "update"))
109 else if (!strcmp (arg, "update1"))
111 else if (!strcmp (arg, "update2"))
113 else if (!strcmp (arg, "dump"))
115 else if (!strcmp (arg, "del") || !strcmp(arg, "delete"))
117 else if (!strcmp (arg, "init"))
121 else if (!strcmp (arg, "commit"))
125 else if (!strcmp (arg, "clean"))
129 else if (!strcmp (arg, "stat") || !strcmp (arg, "status"))
133 else if (!strcmp (arg, "compact"))
139 logf (LOG_FATAL, "unknown command: %s", arg);
145 rGroupDef.path = arg;
146 zebra_set_group (zh, &rGroupDef);
147 zebra_begin_trans (zh);
152 zebra_repository_update (zh);
155 zebra_repository_delete (zh);
158 logf (LOG_LOG, "dumping %s", rGroupDef.path);
159 zebra_repository_show (zh);
166 zebra_end_trans (zh);
167 log_event_end (NULL, NULL);
173 fprintf (stderr, "Z'mbol %s %s\n", ZEBRAVER, ZEBRADATE);
175 fprintf (stderr, "Zebra %s %s\n", ZEBRAVER, ZEBRADATE);
177 fprintf (stderr, " (C) 1994-2002, Index Data ApS\n");
180 fprintf (stderr, " WIN32 Debug\n");
182 fprintf (stderr, " WIN32 Release\n");
186 fprintf (stderr, "libbzip2\n"
187 " (C) 1996-1999 Julian R Seward. All rights reserved.\n");
191 yaz_log_init_level (yaz_log_mask_str(arg));
193 yaz_log_init_file (arg);
195 mem_max = 1024*1024*atoi(arg);
197 rGroupDef.databaseName = arg;
199 rGroupDef.flagRw = 0;
201 rGroupDef.groupName = arg;
203 rGroupDef.fileVerboseLimit = atoi(arg);
207 rGroupDef.recordType = arg;
211 logf (LOG_WARN, "unknown option '-%s'", arg);