48 lines
856 B
Go
48 lines
856 B
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"flag"
|
|
"os"
|
|
"strings"
|
|
|
|
"git.wntrmute.dev/kyle/goutils/log"
|
|
"git.wntrmute.dev/kyle/kdhcp/config"
|
|
"git.wntrmute.dev/kyle/kdhcp/server"
|
|
"github.com/peterbourgon/ff/v3/ffcli"
|
|
)
|
|
|
|
func main() {
|
|
var configPath string
|
|
logLevel := "DEBUG"
|
|
|
|
flag.StringVar(&configPath, "f", "", "path to `config file`")
|
|
flag.StringVar(&logLevel, "l", logLevel, "log level")
|
|
flag.Parse()
|
|
|
|
logLevel = strings.ToUpper(logLevel)
|
|
log.Setup(log.DefaultDebugOptions("kdhcpd", false))
|
|
|
|
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.New(cfg)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
defer srv.Close()
|
|
|
|
srv.Listen()
|
|
|
|
return nil
|
|
},
|
|
}
|
|
|
|
root.ParseAndRun(context.Background(), os.Args[1:])
|
|
}
|