X-Git-Url: http://www.git.cypherpunks.ru/?p=nncp.git;a=blobdiff_plain;f=src%2Fctx.go;h=4d762d290cadfb83fde02a36e5bd74b8850a50d2;hp=cb5c4282b868627e32691fe1e78aff346891bfa5;hb=65ac1674ff0f9bd99bb29b5b8b1dc596b06216ce;hpb=d8d62e26a576d4d35fcf9890304a65dec4c99c6f diff --git a/src/ctx.go b/src/ctx.go index cb5c428..4d762d2 100644 --- a/src/ctx.go +++ b/src/ctx.go @@ -88,9 +88,7 @@ func (ctx *Ctx) ensureRxDir(nodeId *NodeId) error { } func CtxFromCmdline( - cfgPath, - spoolPath, - logPath string, + cfgPath, spoolPath, logPath string, quiet, showPrgrs, omitPrgrs, debug bool, ) (*Ctx, error) { env := os.Getenv(CfgPathEnv) @@ -100,11 +98,27 @@ func CtxFromCmdline( if showPrgrs && omitPrgrs { return nil, errors.New("simultaneous -progress and -noprogress") } - cfgRaw, err := ioutil.ReadFile(cfgPath) + fi, err := os.Stat(cfgPath) if err != nil { return nil, err } - ctx, err := CfgParse(cfgRaw) + var cfg *CfgJSON + if fi.IsDir() { + cfg, err = DirToCfg(cfgPath) + if err != nil { + return nil, err + } + } else { + cfgRaw, err := ioutil.ReadFile(cfgPath) + if err != nil { + return nil, err + } + cfg, err = CfgParse(cfgRaw) + if err != nil { + return nil, err + } + } + ctx, err := Cfg2Ctx(cfg) if err != nil { return nil, err }