diff --git a/config.go b/config.go index 745b2ed..7830b8a 100644 --- a/config.go +++ b/config.go @@ -13,17 +13,19 @@ func DefaultConfig() Config { Host: "localhost", Port: "6889", Title: "Sgot", + RootPath: "./", } } type Config struct { - DB string `env:"SHRT_DB_FILE"` - APIkey string `env:"SHRT_API_KEY"` - Host string `env:"SHRT_HOST"` - Port string `env:"SHRT_PORT"` - Domain string `env:"SHRT_DOMAIN"` - Title string `env:"SHRT_TITLE"` - CheckDomain bool `env:"SHRT_CHECK_DOMAIN"` + RootPath string `env:"SHRTY_ROOT_PATH"` + DB string `env:"SHRTY_DB_FILE"` + APIkey string `env:"SHRTY_API_KEY"` + Host string `env:"SHRTY_HOST"` + Port string `env:"SHRTY_PORT"` + Domain string `env:"SHRTY_DOMAIN"` + Title string `env:"SHRTY_TITLE"` + CheckDomain bool `env:"SHRTY_CHECK_DOMAIN"` } func (c Config) HostPort() string { @@ -48,6 +50,7 @@ func readConfig(f *flag.FlagSet, args []string) (*Config, error){ return nil, err } + f.StringVar(&config.RootPath, "root", config.RootPath, "The path to the shrty root directory.") f.StringVar(&config.Host, "host", config.Host, "The host to listen on") f.StringVar(&config.Port, "port", config.Port, "The port to listen on") f.StringVar(&config.APIkey, "apikey", config.APIkey, "The Key to connect to the API") diff --git a/config_test.go b/config_test.go index 1c19224..9bb8bac 100644 --- a/config_test.go +++ b/config_test.go @@ -24,6 +24,7 @@ func TestConfig_ReadConfig(t *testing.T){ "--title=title", "--apikey=apikey", "--domain=domain", + "--root=root" } expected := &Config{ @@ -33,6 +34,7 @@ func TestConfig_ReadConfig(t *testing.T){ Title: "title", APIkey: "apikey", Domain: "domain", + RootPath: "root", } cfg, err := readConfig(flag.NewFlagSet("", flag.ContinueOnError), input) @@ -41,18 +43,20 @@ func TestConfig_ReadConfig(t *testing.T){ } func TestConfig_ReadConfigFromEnv(t *testing.T) { - assert.NoError(t, os.Setenv("SHRT_DB_FILE", "db")) - defer os.Unsetenv("SHRT_DB_FILE") - assert.NoError(t, os.Setenv("SHRT_API_KEY", "apikey")) - defer os.Unsetenv("SHRT_API_KEY") - assert.NoError(t, os.Setenv("SHRT_HOST", "host")) - defer os.Unsetenv("SHRT_HOST") - assert.NoError(t, os.Setenv("SHRT_PORT", "port")) - defer os.Unsetenv("SHRT_PORT") - assert.NoError(t, os.Setenv("SHRT_DOMAIN", "domain")) - defer os.Unsetenv("SHRT_DOMAIN") - assert.NoError(t, os.Setenv("SHRT_TITLE", "title")) - defer os.Unsetenv("SHRT_TITLE") + assert.NoError(t, os.Setenv("SHRTY_DB_FILE", "db")) + defer os.Unsetenv("SHRTY_DB_FILE") + assert.NoError(t, os.Setenv("SHRTY_API_KEY", "apikey")) + defer os.Unsetenv("SHRTY_API_KEY") + assert.NoError(t, os.Setenv("SHRTY_HOST", "host")) + defer os.Unsetenv("SHRTY_HOST") + assert.NoError(t, os.Setenv("SHRTY_PORT", "port")) + defer os.Unsetenv("SHRTY_PORT") + assert.NoError(t, os.Setenv("SHRTY_DOMAIN", "domain")) + defer os.Unsetenv("SHRTY_DOMAIN") + assert.NoError(t, os.Setenv("SHRTY_TITLE", "title")) + defer os.Unsetenv("SHRTY_TITLE") + assert.NoError(t, os.Setenv("SHRTY_ROOT_PATH", "root")) + defer os.Unsetenv("SHRTY_ROOT_PATH") expected := &Config{ Host: "host", @@ -61,6 +65,7 @@ func TestConfig_ReadConfigFromEnv(t *testing.T) { Title: "title", APIkey: "apikey", Domain: "domain", + RootPath: "root", } cfg, err := readConfig(flag.NewFlagSet("", flag.ContinueOnError), []string{})