refactor(internal/peer): use flags instead of env vars

This commit is contained in:
Dustin Stiles 2025-03-24 13:57:42 -04:00
parent bae3a0289f
commit 703a9e7238
Signed by: duwstiles
GPG Key ID: BCD9912EC231FC87

View File

@ -5,6 +5,7 @@ import (
"crypto/ed25519" "crypto/ed25519"
"encoding/base64" "encoding/base64"
"errors" "errors"
"flag"
"fmt" "fmt"
"io" "io"
"log/slog" "log/slog"
@ -71,35 +72,6 @@ func (c Conf) SlogLevel() slog.Level {
} }
} }
func loadConfigFromSystem(sys system.System) Conf {
var c Conf
c.Host = sys.GetEnv(EnvHost)
if len(c.Host) == 0 {
c.Host = DefaultHost
}
c.Port = sys.GetEnv(EnvPort)
if len(c.Port) == 0 {
c.Port = DefaultPort
}
c.ConfigDir = sys.GetEnv(EnvConfigDir)
if len(c.ConfigDir) == 0 {
c.ConfigDir = DefaultConfigDir
}
c.DataDir = sys.GetEnv(EnvDataDir)
if len(c.DataDir) == 0 {
c.DataDir = DefaultDataDir
}
// defaults are handled by Conf.SlogLevel.
c.LogLevel = sys.GetEnv("DSFX_LOG_LEVEL")
return c
}
// Peer ... // Peer ...
type Peer struct { type Peer struct {
disk disk.Disk disk disk.Disk
@ -111,7 +83,22 @@ type Peer struct {
// New ... // New ...
func New(disk disk.Disk, system system.System) *Peer { func New(disk disk.Disk, system system.System) *Peer {
conf := loadConfigFromSystem(system) flagConfig := flag.String("configDir", "/etc/dsfx/config", "Path to the configuration directory")
flagData := flag.String("dataDir", "/etc/dsfx/data", "Path to the data directory")
flagLogLevel := flag.String("logLevel", "info", "The log level (debug, info, warn, error)")
flagHost := flag.String("host", "0.0.0.0", "The host to bind to")
flagPort := flag.String("port", "8000", "The port to bind to")
if !flag.Parsed() {
flag.Parse()
}
conf := Conf{
LogLevel: *flagLogLevel,
ConfigDir: *flagConfig,
DataDir: *flagData,
Host: *flagHost,
Port: *flagPort,
}
config := scoped.New(disk, conf.ConfigDir) config := scoped.New(disk, conf.ConfigDir)
storage := scoped.New(disk, conf.DataDir) storage := scoped.New(disk, conf.DataDir)