Skip to content
Snippets Groups Projects
Commit bc96e4de authored by ale's avatar ale
Browse files

Accept command-line options from the environment

Flags can be set using environment variables with a REPLDS_ prefix.
parent 85e5b948
Branches
No related tags found
No related merge requests found
Pipeline #57383 passed
......@@ -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) {
......
......@@ -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)")
}
......
......@@ -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 {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment