diff options
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 60 |
1 files changed, 37 insertions, 23 deletions
@@ -13,6 +13,36 @@ var VERSION = "dev" // REVISION stores the information about the git revision of application var REVISION = "HEAD" +var ( + pagesRootCert = flag.String("root-cert", "", "The default path to file certificate to serve static pages") + pagesRootKey = flag.String("root-key", "", "The default path to file certificate to serve static pages") + redirectHTTP = flag.Bool("redirect-http", true, "Serve the pages under HTTP") + useHTTP2 = flag.Bool("use-http2", true, "Enable HTTP2 support") + pagesRoot = flag.String("pages-root", "shared/pages", "The directory where pages are stored") + pagesDomain = flag.String("pages-domain", "gitlab-example.com", "The domain to serve static pages") + metricsAddress = flag.String("metrics-address", "", "The address to listen on for metrics requests") + daemonUID = flag.Uint("daemon-uid", 0, "Drop privileges to this user") + daemonGID = flag.Uint("daemon-gid", 0, "Drop privileges to this group") +) + +func configFromFlags() appConfig { + var config appConfig + + config.Domain = strings.ToLower(*pagesDomain) + config.RedirectHTTP = *redirectHTTP + config.HTTP2 = *useHTTP2 + + if *pagesRootCert != "" { + config.RootCertificate = readFile(*pagesRootCert) + } + + if *pagesRootKey != "" { + config.RootKey = readFile(*pagesRootKey) + } + + return config +} + func appMain() { var showVersion = flag.Bool("version", false, "Show version") var listenHTTP, listenHTTPS, listenProxy MultiStringFlag @@ -21,16 +51,6 @@ func appMain() { flag.Var(&listenHTTPS, "listen-https", "The address(es) to listen on for HTTPS requests") flag.Var(&listenProxy, "listen-proxy", "The address(es) to listen on for proxy requests") - var pagesRootCert = flag.String("root-cert", "", "The default path to file certificate to serve static pages") - var pagesRootKey = flag.String("root-key", "", "The default path to file certificate to serve static pages") - var redirectHTTP = flag.Bool("redirect-http", true, "Serve the pages under HTTP") - var useHTTP2 = flag.Bool("use-http2", true, "Enable HTTP2 support") - var pagesRoot = flag.String("pages-root", "shared/pages", "The directory where pages are stored") - var pagesDomain = flag.String("pages-domain", "gitlab-example.com", "The domain to serve static pages") - var metricsAdress = flag.String("metrics-address", "", "The adress to server metrics to") - var daemonUID = flag.Uint("daemon-uid", 0, "Drop privileges to this user") - var daemonGID = flag.Uint("daemon-gid", 0, "Drop privileges to this group") - flag.Parse() printVersion(*showVersion, VERSION) @@ -43,19 +63,7 @@ func appMain() { log.Fatalln(err) } - var config appConfig - config.Domain = strings.ToLower(*pagesDomain) - config.RedirectHTTP = *redirectHTTP - config.HTTP2 = *useHTTP2 - config.MetricsAddress = *metricsAdress - - if *pagesRootCert != "" { - config.RootCertificate = readFile(*pagesRootCert) - } - - if *pagesRootKey != "" { - config.RootKey = readFile(*pagesRootKey) - } + config := configFromFlags() for _, addr := range listenHTTP { l, fd := createSocket(addr) @@ -75,6 +83,12 @@ func appMain() { config.ListenProxy = append(config.ListenProxy, fd) } + if *metricsAddress != "" { + l, fd := createSocket(*metricsAddress) + defer l.Close() + config.ListenMetrics = fd + } + if *daemonUID != 0 || *daemonGID != 0 { daemonize(config, *daemonUID, *daemonGID) return |