26 lines
1.0 KiB
Go
26 lines
1.0 KiB
Go
package main
|
|
|
|
import (
|
|
"github.com/alecthomas/kingpin/v2"
|
|
)
|
|
|
|
type configuration struct {
|
|
casDirectory string
|
|
applicationListenAddress string
|
|
metricsListenAddress string
|
|
}
|
|
|
|
func parseConfiguration(args []string) *configuration {
|
|
config := &configuration{}
|
|
app := kingpin.New("ocspcrl", "OCSP responder / CRL server (multi-CA)")
|
|
app.HelpFlag.Short('h')
|
|
app.Flag("cas-directory", "Path to a directory containing one subdirectory per CA. Each subdirectory must contain ca.crt, responder.crt, key.pem and crl.pem. The subdirectory name is used as the route prefix.").
|
|
Envar("CAS_DIRECTORY").Required().ExistingDirVar(&config.casDirectory)
|
|
app.Flag("web.listen-address", "Address for application endpoint").
|
|
Envar("WEB_LISTEN_ADDRESS").Default(":8080").StringVar(&config.applicationListenAddress)
|
|
app.Flag("metrics.listen-address", "Address for metrics endpoint").
|
|
Envar("METRICS_LISTEN_ADDRESS").Default("[::1]:8081").StringVar(&config.metricsListenAddress)
|
|
kingpin.MustParse(app.Parse(args))
|
|
return config
|
|
}
|