aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/venti/config.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/venti/config.c')
-rw-r--r--src/cmd/venti/config.c144
1 files changed, 0 insertions, 144 deletions
diff --git a/src/cmd/venti/config.c b/src/cmd/venti/config.c
deleted file mode 100644
index cdcaad10..00000000
--- a/src/cmd/venti/config.c
+++ /dev/null
@@ -1,144 +0,0 @@
-#include "stdinc.h"
-#include "dat.h"
-#include "fns.h"
-
-Index *mainindex;
-int paranoid = 1; /* should verify hashes on disk read */
-
-static ArenaPart *configarenas(char *file);
-static ISect *configisect(char *file);
-
-int
-initventi(char *file)
-{
- Config conf;
-
- fmtinstall('V', vtscorefmt);
-
- statsinit();
-
- if(file == nil){
- seterr(EOk, "no configuration file");
- return -1;
- }
- if(runconfig(file, &conf) < 0){
- seterr(EOk, "can't initialize venti: %r");
- return -1;
- }
- mainindex = initindex(conf.index, conf.sects, conf.nsects);
- if(mainindex == nil)
- return -1;
- return 0;
-}
-
-/*
- * configs :
- * | configs config
- * config : "isect" filename
- * | "arenas" filename
- * | "index" name
- *
- * '#' and \n are comments
- */
-enum
-{
- MaxArgs = 2
-};
-int
-runconfig(char *file, Config *config)
-{
- ArenaPart **av;
- ISect **sv;
- IFile f;
- char *s, *line, *flds[MaxArgs + 1];
- int i, ok;
-
- if(readifile(&f, file) < 0)
- return -1;
- config->index = nil;
- config->naparts = 0;
- config->aparts = nil;
- config->nsects = 0;
- config->sects = nil;
- ok = -1;
- line = nil;
- for(;;){
- s = ifileline(&f);
- if(s == nil){
- ok = 0;
- break;
- }
- line = estrdup(s);
- i = getfields(s, flds, MaxArgs + 1, 1, " \t\r");
- if(i == 2 && strcmp(flds[0], "isect") == 0){
- sv = MKN(ISect*, config->nsects + 1);
- for(i = 0; i < config->nsects; i++)
- sv[i] = config->sects[i];
- free(config->sects);
- config->sects = sv;
- config->sects[config->nsects] = configisect(flds[1]);
- if(config->sects[config->nsects] == nil)
- break;
- config->nsects++;
- }else if(i == 2 && strcmp(flds[0], "arenas") == 0){
- av = MKN(ArenaPart*, config->naparts + 1);
- for(i = 0; i < config->naparts; i++)
- av[i] = config->aparts[i];
- free(config->aparts);
- config->aparts = av;
- config->aparts[config->naparts] = configarenas(flds[1]);
- if(config->aparts[config->naparts] == nil)
- break;
- config->naparts++;
- }else if(i == 2 && strcmp(flds[0], "index") == 0){
- if(nameok(flds[1]) < 0){
- seterr(EAdmin, "illegal index name %s in config file %s", flds[1], config);
- break;
- }
- if(config->index != nil){
- seterr(EAdmin, "duplicate indices in config file %s", config);
- break;
- }
- config->index = estrdup(flds[1]);
- }else{
- seterr(EAdmin, "illegal line '%s' in configuration file %s", line, config);
- break;
- }
- free(line);
- line = nil;
- }
- free(line);
- freeifile(&f);
- if(ok < 0){
- free(config->sects);
- config->sects = nil;
- free(config->aparts);
- config->aparts = nil;
- }
- return ok;
-}
-
-static ISect*
-configisect(char *file)
-{
- Part *part;
-
- fprint(2, "configure index section in %s\n", file);
-
- part = initpart(file, 0);
- if(part == nil)
- return nil;
- return initisect(part);
-}
-
-static ArenaPart*
-configarenas(char *file)
-{
- Part *part;
-
- fprint(2, "configure arenas in %s\n", file);
- part = initpart(file, 0);
- if(part == nil)
- return nil;
- return initarenapart(part);
-}