diff --git a/cmd/replds/pull.go b/cmd/replds/pull.go index 1fcf3f41d373ac1bed581264bd1664b6d87ea6fb..156ede5dab47b392c4883c02b94e464d15979d51 100644 --- a/cmd/replds/pull.go +++ b/cmd/replds/pull.go @@ -40,12 +40,12 @@ func (c *pullCommand) Usage() string { } func (c *pullCommand) SetFlags(f *flag.FlagSet) { - f.StringVar(&c.serverAddr, "server", "", "server `address` (host:port)") - f.StringVar(&c.sslCert, "ssl-cert", "", "client SSL certificate `path`") - f.StringVar(&c.sslKey, "ssl-key", "", "client SSL private key `path`") - f.StringVar(&c.sslCA, "ssl-ca", "", "SSL CA `path`") - f.StringVar(&c.storePath, "store", "", "`path` for local file storage") - f.StringVar(&c.triggersPath, "triggers-dir", "", "`path` where trigger configs are stored") + f.StringVar(&c.serverAddr, "server", os.Getenv("REPLDS_SERVER"), "server `address` (host:port)") + f.StringVar(&c.sslCert, "ssl-cert", os.Getenv("REPLDS_SSL_CLIENT_CERT"), "client SSL certificate `path`") + f.StringVar(&c.sslKey, "ssl-key", os.Getenv("REPLDS_SSL_CLIENT_KEY"), "client SSL private key `path`") + f.StringVar(&c.sslCA, "ssl-ca", os.Getenv("REPLDS_SSL_CA"), "SSL CA `path`") + f.StringVar(&c.storePath, "store", os.Getenv("REPLDS_STORE"), "`path` for local file storage") + f.StringVar(&c.triggersPath, "triggers-dir", os.Getenv("REPLDS_TRIGGERS_DIR"), "`path` where trigger configs are stored") } func (c *pullCommand) grpcDialOptions() ([]grpc.DialOption, error) { diff --git a/cmd/replds/server.go b/cmd/replds/server.go index 50dd21fdf6bae442739545fdb29cc011e619e10f..f4cc7da650691577588e6255e2f7e591e1fb2142 100644 --- a/cmd/replds/server.go +++ b/cmd/replds/server.go @@ -9,6 +9,7 @@ import ( "net/http" "os" "os/signal" + "strings" "syscall" "time" @@ -59,15 +60,19 @@ func (c *serverCommand) Usage() string { } func (c *serverCommand) SetFlags(f *flag.FlagSet) { - f.StringVar(&c.grpcAddr, "grpc-addr", ":3636", "`address` to listen on") - f.StringVar(&c.httpAddr, "http-addr", ":3638", "address to listen on for the HTTP API (optional)") - f.StringVar(&c.sslCert, "ssl-cert", "", "server SSL certificate `path`") - f.StringVar(&c.sslKey, "ssl-key", "", "server SSL private key `path`") - f.StringVar(&c.clientSSLCert, "client-ssl-cert", "", "client SSL certificate `path`") - f.StringVar(&c.clientSSLKey, "client-ssl-key", "", "client SSL private key `path`") - f.StringVar(&c.sslCA, "ssl-ca", "", "SSL CA `path`") - f.StringVar(&c.acls, "acls", "", "`path` to file with ACL specs") - f.StringVar(&c.storePath, "store", "", "`path` for local file storage") + f.StringVar(&c.grpcAddr, "grpc-addr", getenv("REPLDS_GRPC_ADDR", ":3636"), "`address` to listen on") + f.StringVar(&c.httpAddr, "http-addr", getenv("REPLDS_HTTP_ADDR", ":3638"), "address to listen on for the HTTP API (optional)") + f.StringVar(&c.sslCert, "ssl-cert", os.Getenv("REPLDS_SSL_CERT"), "server SSL certificate `path`") + f.StringVar(&c.sslKey, "ssl-key", os.Getenv("REPLDS_SSL_KEY"), "server SSL private key `path`") + f.StringVar(&c.clientSSLCert, "client-ssl-cert", os.Getenv("REPLDS_SSL_CLIENT_CERT"), "client SSL certificate `path`") + f.StringVar(&c.clientSSLKey, "client-ssl-key", os.Getenv("REPLDS_SSL_CLIENT_KEY"), "client SSL private key `path`") + f.StringVar(&c.sslCA, "ssl-ca", os.Getenv("REPLDS_SSL_CA"), "SSL CA `path`") + f.StringVar(&c.acls, "acls", os.Getenv("REPLDS_ACLS"), "`path` to file with ACL specs") + f.StringVar(&c.storePath, "store", os.Getenv("REPLDS_STORE"), "`path` for local file storage") + + if s := os.Getenv("REPLDS_PEERS"); s != "" { + c.peers = listFlag(strings.Split(s, ",")) + } f.Var(&c.peers, "peer", "peer `addr`esses (can be specified multiple times)") } diff --git a/cmd/replds/util.go b/cmd/replds/util.go index 9500778e99385aabe183df0a62584c403702d2dc..1c8c6323a863c941dc233a29aa1ea819db2fc475 100644 --- a/cmd/replds/util.go +++ b/cmd/replds/util.go @@ -5,9 +5,17 @@ import ( "crypto/x509" "fmt" "io/ioutil" + "os" "strings" ) +func getenv(key, dfl string) string { + if s := os.Getenv(key); s != "" { + return s + } + return dfl +} + type listFlag []string func (l *listFlag) Set(s string) error {