home/internal/domain/config.go

34 lines
808 B
Go

package domain
import (
"net"
"net/netip"
"path/filepath"
"strconv"
"testing"
)
type Config struct {
ContentDir string `env:"CONTENT_DIR" envDefault:"content"`
Host string `env:"HOST" envDefault:"0.0.0.0"`
ThemeDir string `env:"THEME_DIR" envDefault:"theme"`
StaticDir string `env:"STATIC_DIR" envDefault:"static"`
Port uint16 `env:"PORT" envDefault:"3000"`
}
func TestConfig(tb testing.TB) *Config {
tb.Helper()
return &Config{
ContentDir: filepath.Join("testdata", "content"),
Host: "0.0.0.0",
ThemeDir: filepath.Join("testdata", "theme"),
StaticDir: filepath.Join("testdata", "static"),
Port: 3000,
}
}
func (c Config) AddrPort() netip.AddrPort {
return netip.MustParseAddrPort(net.JoinHostPort(c.Host, strconv.FormatUint(uint64(c.Port), 10)))
}