config: writing how the config file should look
This commit is contained in:
@@ -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:])
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user