config: writing how the config file should look

This commit is contained in:
2023-05-01 22:31:15 -07:00
parent 7630cd4e7d
commit 482a12b819
10 changed files with 205 additions and 152 deletions

View File

@@ -1,36 +1,34 @@
package main
import (
"context"
"flag"
"os"
"git.wntrmute.dev/kyle/kdhcp/bazel-kdhcp/external/com_github_davecgh_go_spew/spew"
"git.wntrmute.dev/kyle/kdhcp/config"
"git.wntrmute.dev/kyle/kdhcp/log"
"git.wntrmute.dev/kyle/kdhcp/server"
"github.com/davecgh/go-spew/spew"
"github.com/peterbourgon/ff/v3/ffcli"
)
func main() {
cfg := server.DefaultConfig()
var level, tag string
flag.StringVar(&level, "l", "DEBUG", "log level") // TODO(kyle): change this warning later
flag.IntVar(&cfg.Port, "p", cfg.Port, "port to listen on")
flag.StringVar(&tag, "t", "kdhcpd", "logging tag")
var configPath string
flag.StringVar(&configPath, "f", "kdhcpd.yaml", "path to `config file`")
flag.Parse()
log.Setup(level, tag)
root := &ffcli.Command{
Exec: func(ctx context.Context, args []string) error {
cfg, err := config.Load(configPath)
if err != nil {
log.Fatal(err)
}
srv, err := server.NewServer(cfg)
if err != nil {
log.Fatal(err)
log.Debugf("read configuration file with version=%d", cfg.Version)
spew.Dump(*cfg)
return nil
},
}
for {
packet, err := srv.ReadFrom()
if err != nil {
log.Warning(err)
continue
}
log.Debugf("receive %d byte packet from %s", len(packet.Data), packet.Addr)
spew.Dump(packet.Data)
}
root.ParseAndRun(context.Background(), os.Args[1:])
}