]> Cypherpunks.ru repositories - nncp.git/blobdiff - src/ctx.go
Operations progress
[nncp.git] / src / ctx.go
index 8a1146e2b5651f44731cfe7de792ff3388c906a9..19c7b9c0177fb0e0abe86497f05ede78404d3719 100644 (file)
@@ -39,6 +39,7 @@ type Ctx struct {
        LogPath    string
        UmaskForce *int
        Quiet      bool
+       ShowPrgrs  bool
        Debug      bool
        NotifyFile *FromToJSON
        NotifyFreq *FromToJSON
@@ -64,23 +65,31 @@ func (ctx *Ctx) FindNode(id string) (*Node, error) {
 func (ctx *Ctx) ensureRxDir(nodeId *NodeId) error {
        dirPath := filepath.Join(ctx.Spool, nodeId.String(), string(TRx))
        if err := os.MkdirAll(dirPath, os.FileMode(0777)); err != nil {
-               ctx.LogE("dir-ensure", SDS{"dir": dirPath, "err": err}, "")
+               ctx.LogE("dir-ensure", SDS{"dir": dirPath}, err, "")
                return err
        }
        fd, err := os.Open(dirPath)
        if err != nil {
-               ctx.LogE("dir-ensure", SDS{"dir": dirPath, "err": err}, "")
+               ctx.LogE("dir-ensure", SDS{"dir": dirPath}, err, "")
                return err
        }
        fd.Close()
        return nil
 }
 
-func CtxFromCmdline(cfgPath, spoolPath, logPath string, quiet, debug bool) (*Ctx, error) {
+func CtxFromCmdline(
+       cfgPath,
+       spoolPath,
+       logPath string,
+       quiet, showPrgrs, omitPrgrs, debug bool,
+) (*Ctx, error) {
        env := os.Getenv(CfgPathEnv)
        if env != "" {
                cfgPath = env
        }
+       if showPrgrs && omitPrgrs {
+               return nil, errors.New("simultaneous -progress and -noprogress")
+       }
        cfgRaw, err := ioutil.ReadFile(cfgPath)
        if err != nil {
                return nil, err
@@ -105,6 +114,12 @@ func CtxFromCmdline(cfgPath, spoolPath, logPath string, quiet, debug bool) (*Ctx
        } else {
                ctx.LogPath = logPath
        }
+       if showPrgrs {
+               ctx.ShowPrgrs = true
+       }
+       if quiet || omitPrgrs {
+               ctx.ShowPrgrs = false
+       }
        ctx.Quiet = quiet
        ctx.Debug = debug
        return ctx, nil