Split of work into more files.
[idzebra-moved-to-github.git] / index / main.c
1 /*
2  * Copyright (C) 1995, Index Data I/S 
3  * All rights reserved.
4  * Sebastian Hammer, Adam Dickmeiss
5  *
6  * $Log: main.c,v $
7  * Revision 1.4  1995-09-01 14:06:36  adam
8  * Split of work into more files.
9  *
10  * Revision 1.3  1995/09/01  10:57:07  adam
11  * Minor changes.
12  *
13  * Revision 1.2  1995/09/01  10:30:24  adam
14  * More work on indexing. Not working yet.
15  *
16  * Revision 1.1  1995/08/31  14:50:24  adam
17  * New simple file index tool.
18  *
19  */
20 #include <stdio.h>
21 #include <assert.h>
22 #include <unistd.h>
23
24 #include <util.h>
25 #include "index.h"
26
27 char *prog;
28
29 int main (int argc, char **argv)
30 {
31     int ret;
32     int cmd = 0;
33     char *arg;
34     char *base_name = NULL;
35     char *base_path = NULL;
36
37     prog = *argv;
38     while ((ret = options ("r:v:", argv, argc, &arg)) != -2)
39     {
40         if (ret == 0)
41         {
42             if (!base_name)
43             {
44                 base_name = arg;
45
46                 common_resource = res_open (base_name);
47                 if (!common_resource)
48                 {
49                     log (LOG_FATAL, "Cannot open resource `%s'", base_name);
50                     exit (1);
51                 }
52             }
53             else if(cmd == 0) /* command */
54             {
55                 if (!strcmp (arg, "add"))
56                 {
57                     cmd = 'a';
58                 }
59                 else if (!strcmp (arg, "del"))
60                 {
61                     cmd = 'd';
62                 }
63                 else
64                 {
65                     log (LOG_FATAL, "Unknown command: %s", arg);
66                     exit (1);
67                 }
68             }
69             else
70             {
71                 key_open ("keys.tmp");
72                 repository (cmd, arg, base_path);
73                 cmd = 0;
74             }
75         }
76         else if (ret == 'v')
77         {
78             log_init (log_mask_str(arg), prog, NULL);
79         }
80         else if (ret == 'r')
81         {
82             base_path = arg;
83         }
84         else
85         {
86             log (LOG_FATAL, "Unknown option '-%s'", arg);
87             exit (1);
88         }
89     }
90     if (!base_name)
91     {
92         fprintf (stderr, "index [-v log] [-r repository] "
93                  "base cmd1 dir1 cmd2 dir2 ...\n");
94         exit (1);
95     }
96     key_flush ();
97     key_close ();
98     exit (0);
99 }