chore: move cfg package to internal/cmd

This commit is contained in:
Tom Neuber 2024-11-28 11:52:41 +01:00
parent 8215e1f13a
commit 95a3a16fdc
Signed by: tom
GPG key ID: F17EFE4272D89FF6

View file

@ -1,4 +1,4 @@
package cfg package cmd
import ( import (
"errors" "errors"
@ -15,15 +15,19 @@ type AppSettings struct {
DataURL string DataURL string
CacheTTL time.Duration CacheTTL time.Duration
ReadHeaderTimeout time.Duration ReadHeaderTimeout time.Duration
EnableExporter bool
ExporterAddress string
} }
//nolint:lll // ignore line length //nolint:lll // ignore line length
type CLI struct { type CLI struct {
ServerAddress string `name:"listen-address" env:"GEOIP_LISTEN_ADDRESS" help:"Address to use for the metrics server" default:"${default_address}"` ServerAddress string `name:"listen-address" env:"GEOIP_LISTEN_ADDRESS" help:"Address to use for the api server" default:"${default_address}"`
DataFile string `name:"data-file" env:"GEOIP_DATA_FILE" help:"path to data file" default:"${default_file_path}"` DataFile string `name:"data-file" env:"GEOIP_DATA_FILE" help:"path to data file" default:"${default_file_path}"`
DataURL string `name:"data-url" env:"GEOIP_DATA_URL" help:"url to data file"` DataURL string `name:"data-url" env:"GEOIP_DATA_URL" help:"url to data file"`
CacheTTL string `name:"cache-ttl" env:"GEOIP_CACHE_TTL" help:"ttl for response cache" default:"${default_cache_ttl}"` CacheTTL string `name:"cache-ttl" env:"GEOIP_CACHE_TTL" help:"ttl for response cache" default:"${default_cache_ttl}"`
ReadHeaderTimeout string `name:"read-header-timeout" env:"GEOIP_READ_HEADER_TIMEOUT" help:"timeout for reading http header" default:"${default_read_header_timeout}"` ReadHeaderTimeout string `name:"read-header-timeout" env:"GEOIP_READ_HEADER_TIMEOUT" help:"timeout for reading http header" default:"${default_read_header_timeout}"`
EnableExporter bool `name:"enable-exporter" env:"GEOIP_ENABLE_EXPORTER" help:"enable prometheus exporter" default:"${default_enable_exporter}"`
ExporterAddress string `name:"exporter-address" env:"GEOIP_EXPORTER_ADDRESS" help:"Address to use for the prometheus metrics server" default:"${default_exporter_address}"`
} }
func (c *CLI) Parse() (*AppSettings, error) { func (c *CLI) Parse() (*AppSettings, error) {
@ -34,8 +38,10 @@ func (c *CLI) Parse() (*AppSettings, error) {
"default_file_path": "./data.csv", "default_file_path": "./data.csv",
"default_cache_ttl": "2m", "default_cache_ttl": "2m",
"default_read_header_timeout": "3s", "default_read_header_timeout": "3s",
"default_enable_exporter": "false",
"default_exporter_address": ":9191",
}, },
kong.Name("country_geo_locations"), kong.Name("country-geo-locations"),
kong.Description("🚀 Start a simple web server for GeoIP data"), kong.Description("🚀 Start a simple web server for GeoIP data"),
kong.UsageOnError(), kong.UsageOnError(),
) )
@ -60,5 +66,7 @@ func (c *CLI) Parse() (*AppSettings, error) {
DataURL: c.DataURL, DataURL: c.DataURL,
CacheTTL: cacheTTL, CacheTTL: cacheTTL,
ReadHeaderTimeout: readHeaderTimeout, ReadHeaderTimeout: readHeaderTimeout,
EnableExporter: c.EnableExporter,
ExporterAddress: c.ExporterAddress,
}, nil }, nil
} }