From: Sergey Matveev Date: Thu, 12 Jan 2017 08:43:54 +0000 (+0300) Subject: Ability to override path to configuration file via envvar X-Git-Tag: 0.2^2~40 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=acd587140f52e9c25aae0359b2e8209c05dfa1f7;p=nncp.git Ability to override path to configuration file via envvar --- diff --git a/doc/cmds.texi b/doc/cmds.texi index 70b089f..04eb205 100644 --- a/doc/cmds.texi +++ b/doc/cmds.texi @@ -4,6 +4,9 @@ Nearly all commands have the following common options: @table @code +@item -cfg + Path to configuration file. May be overrided by @code{NNCPCFG} + environment variable. @item -debug Print debug messages. Normally this option should not be used. @item -nice diff --git a/src/cypherpunks.ru/nncp/cfg.go b/src/cypherpunks.ru/nncp/cfg.go index 661a6b6..c69c523 100644 --- a/src/cypherpunks.ru/nncp/cfg.go +++ b/src/cypherpunks.ru/nncp/cfg.go @@ -20,12 +20,17 @@ package nncp import ( "errors" + "os" "path" "golang.org/x/crypto/ed25519" "gopkg.in/yaml.v2" ) +const ( + CfgPathEnv = "NNCPCFG" +) + var ( DefaultCfgPath string = "/usr/local/etc/nncp.yaml" DefaultSendmailPath string = "/usr/sbin/sendmail" @@ -284,3 +289,11 @@ func CfgParse(data []byte) (*Ctx, error) { } return &ctx, nil } + +func CfgPathFromEnv(cmdlineFlag *string) (p string) { + p = os.Getenv(CfgPathEnv) + if p == "" { + p = *cmdlineFlag + } + return +} diff --git a/src/cypherpunks.ru/nncp/cmd/nncp-call/main.go b/src/cypherpunks.ru/nncp/cmd/nncp-call/main.go index 36f3ff7..236d445 100644 --- a/src/cypherpunks.ru/nncp/cmd/nncp-call/main.go +++ b/src/cypherpunks.ru/nncp/cmd/nncp-call/main.go @@ -73,7 +73,7 @@ func main() { log.Fatalln("-rx and -tx can not be set simultaneously") } - cfgRaw, err := ioutil.ReadFile(*cfgPath) + cfgRaw, err := ioutil.ReadFile(nncp.CfgPathFromEnv(cfgPath)) if err != nil { log.Fatalln("Can not read config:", err) } diff --git a/src/cypherpunks.ru/nncp/cmd/nncp-check/main.go b/src/cypherpunks.ru/nncp/cmd/nncp-check/main.go index cd8268e..2c06b14 100644 --- a/src/cypherpunks.ru/nncp/cmd/nncp-check/main.go +++ b/src/cypherpunks.ru/nncp/cmd/nncp-check/main.go @@ -56,7 +56,7 @@ func main() { return } - cfgRaw, err := ioutil.ReadFile(*cfgPath) + cfgRaw, err := ioutil.ReadFile(nncp.CfgPathFromEnv(cfgPath)) if err != nil { log.Fatalln("Can not read config:", err) } diff --git a/src/cypherpunks.ru/nncp/cmd/nncp-daemon/main.go b/src/cypherpunks.ru/nncp/cmd/nncp-daemon/main.go index c14f4ba..b639d10 100644 --- a/src/cypherpunks.ru/nncp/cmd/nncp-daemon/main.go +++ b/src/cypherpunks.ru/nncp/cmd/nncp-daemon/main.go @@ -65,7 +65,7 @@ func main() { } nice := uint8(*niceRaw) - cfgRaw, err := ioutil.ReadFile(*cfgPath) + cfgRaw, err := ioutil.ReadFile(nncp.CfgPathFromEnv(cfgPath)) if err != nil { log.Fatalln("Can not read config:", err) } diff --git a/src/cypherpunks.ru/nncp/cmd/nncp-file/main.go b/src/cypherpunks.ru/nncp/cmd/nncp-file/main.go index 46728ea..c17d5f3 100644 --- a/src/cypherpunks.ru/nncp/cmd/nncp-file/main.go +++ b/src/cypherpunks.ru/nncp/cmd/nncp-file/main.go @@ -65,7 +65,7 @@ func main() { } nice := uint8(*niceRaw) - cfgRaw, err := ioutil.ReadFile(*cfgPath) + cfgRaw, err := ioutil.ReadFile(nncp.CfgPathFromEnv(cfgPath)) if err != nil { log.Fatalln("Can not read config:", err) } diff --git a/src/cypherpunks.ru/nncp/cmd/nncp-freq/main.go b/src/cypherpunks.ru/nncp/cmd/nncp-freq/main.go index 260c599..ebfa82d 100644 --- a/src/cypherpunks.ru/nncp/cmd/nncp-freq/main.go +++ b/src/cypherpunks.ru/nncp/cmd/nncp-freq/main.go @@ -65,7 +65,7 @@ func main() { } nice := uint8(*niceRaw) - cfgRaw, err := ioutil.ReadFile(*cfgPath) + cfgRaw, err := ioutil.ReadFile(nncp.CfgPathFromEnv(cfgPath)) if err != nil { log.Fatalln("Can not read config:", err) } diff --git a/src/cypherpunks.ru/nncp/cmd/nncp-log/main.go b/src/cypherpunks.ru/nncp/cmd/nncp-log/main.go index 9a4f530..653f213 100644 --- a/src/cypherpunks.ru/nncp/cmd/nncp-log/main.go +++ b/src/cypherpunks.ru/nncp/cmd/nncp-log/main.go @@ -55,7 +55,7 @@ func main() { return } - cfgRaw, err := ioutil.ReadFile(*cfgPath) + cfgRaw, err := ioutil.ReadFile(nncp.CfgPathFromEnv(cfgPath)) if err != nil { log.Fatalln("Can not read config:", err) } diff --git a/src/cypherpunks.ru/nncp/cmd/nncp-mail/main.go b/src/cypherpunks.ru/nncp/cmd/nncp-mail/main.go index f23877b..ab0d0ad 100644 --- a/src/cypherpunks.ru/nncp/cmd/nncp-mail/main.go +++ b/src/cypherpunks.ru/nncp/cmd/nncp-mail/main.go @@ -67,7 +67,7 @@ func main() { } nice := uint8(*niceRaw) - cfgRaw, err := ioutil.ReadFile(*cfgPath) + cfgRaw, err := ioutil.ReadFile(nncp.CfgPathFromEnv(cfgPath)) if err != nil { log.Fatalln("Can not read config:", err) } diff --git a/src/cypherpunks.ru/nncp/cmd/nncp-pkt/main.go b/src/cypherpunks.ru/nncp/cmd/nncp-pkt/main.go index 674381e..f11b1b8 100644 --- a/src/cypherpunks.ru/nncp/cmd/nncp-pkt/main.go +++ b/src/cypherpunks.ru/nncp/cmd/nncp-pkt/main.go @@ -104,7 +104,7 @@ func main() { _, err = xdr.Unmarshal(bytes.NewReader(beginning), &pktEnc) if err == nil && pktEnc.Magic == nncp.MagicNNCPEv1 { if *dump { - cfgRaw, err := ioutil.ReadFile(*cfgPath) + cfgRaw, err := ioutil.ReadFile(nncp.CfgPathFromEnv(cfgPath)) if err != nil { log.Fatalln("Can not read config:", err) } diff --git a/src/cypherpunks.ru/nncp/cmd/nncp-stat/main.go b/src/cypherpunks.ru/nncp/cmd/nncp-stat/main.go index 36cc1cb..f5b0287 100644 --- a/src/cypherpunks.ru/nncp/cmd/nncp-stat/main.go +++ b/src/cypherpunks.ru/nncp/cmd/nncp-stat/main.go @@ -56,7 +56,7 @@ func main() { return } - cfgRaw, err := ioutil.ReadFile(*cfgPath) + cfgRaw, err := ioutil.ReadFile(nncp.CfgPathFromEnv(cfgPath)) if err != nil { log.Fatalln("Can not read config:", err) } diff --git a/src/cypherpunks.ru/nncp/cmd/nncp-toss/main.go b/src/cypherpunks.ru/nncp/cmd/nncp-toss/main.go index 9b50866..5fd73b3 100644 --- a/src/cypherpunks.ru/nncp/cmd/nncp-toss/main.go +++ b/src/cypherpunks.ru/nncp/cmd/nncp-toss/main.go @@ -62,7 +62,7 @@ func main() { } nice := uint8(*niceRaw) - cfgRaw, err := ioutil.ReadFile(*cfgPath) + cfgRaw, err := ioutil.ReadFile(nncp.CfgPathFromEnv(cfgPath)) if err != nil { log.Fatalln("Can not read config:", err) } diff --git a/src/cypherpunks.ru/nncp/cmd/nncp-xfer/main.go b/src/cypherpunks.ru/nncp/cmd/nncp-xfer/main.go index 669eadc..9c2b5e2 100644 --- a/src/cypherpunks.ru/nncp/cmd/nncp-xfer/main.go +++ b/src/cypherpunks.ru/nncp/cmd/nncp-xfer/main.go @@ -77,7 +77,7 @@ func main() { log.Fatalln("-rx and -tx can not be set simultaneously") } - cfgRaw, err := ioutil.ReadFile(*cfgPath) + cfgRaw, err := ioutil.ReadFile(nncp.CfgPathFromEnv(cfgPath)) if err != nil { log.Fatalln("Can not read config:", err) }