aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2020-08-06 21:09:41 +0200
committerMartin Polden <mpolden@mpolden.no>2020-08-06 21:21:03 +0200
commit5919819716040d78388792902e87ed4b23e3b27c (patch)
treea405eb4dcb277f0683962c5a320c9095f4af691a
parent4bff6d85a46fd18c210f6a7d4a60136eda43bc24 (diff)
cmd: Simplify
-rw-r--r--cmd/zdns/main.go33
-rw-r--r--cmd/zdns/main_test.go5
2 files changed, 15 insertions, 23 deletions
diff --git a/cmd/zdns/main.go b/cmd/zdns/main.go
index 31407ee..90ac429 100644
--- a/cmd/zdns/main.go
+++ b/cmd/zdns/main.go
@@ -1,7 +1,6 @@
package main
import (
- "fmt"
"io"
"log"
"os"
@@ -25,6 +24,11 @@ const (
configName = "." + name + "rc"
)
+func init() {
+ log.SetPrefix(logPrefix)
+ log.SetFlags(log.Lshortfile)
+}
+
type server interface{ ListenAndServe() error }
type cli struct {
@@ -33,7 +37,7 @@ type cli struct {
wg sync.WaitGroup
}
-func defaultConfigFile() string { return filepath.Join(os.Getenv("HOME"), configName) }
+func configPath() string { return filepath.Join(os.Getenv("HOME"), configName) }
func readConfig(file string) (zdns.Config, error) {
f, err := os.Open(file)
@@ -48,8 +52,7 @@ func fatal(err error) {
if err == nil {
return
}
- fmt.Fprintf(os.Stderr, "%s: %s\n", logPrefix, err)
- os.Exit(1)
+ log.Fatal(err)
}
func (c *cli) runServer(server server) {
@@ -62,25 +65,18 @@ func (c *cli) runServer(server server) {
}()
}
-func newCli(out io.Writer, args []string, configFile string, sig chan os.Signal) (*cli, error) {
+func newCli(out io.Writer, args []string, configFile string, sig chan os.Signal) *cli {
cl := flag.CommandLine
cl.SetOutput(out)
+ log.SetOutput(out)
confFile := cl.String("f", configFile, "config file `path`")
- help := cl.Bool("h", false, "print usage")
cl.Parse(args)
- if *help {
- cl.Usage()
- return nil, fmt.Errorf("usage option given")
- }
// Config
config, err := readConfig(*confFile)
fatal(err)
- // Logging and signal handling
- log.SetOutput(out)
- log.SetPrefix(logPrefix)
- log.SetFlags(log.Lshortfile)
+ // Signal handler
sigHandler := signal.NewHandler(sig)
// SQL backends
@@ -160,7 +156,7 @@ func newCli(out io.Writer, args []string, configFile string, sig chan os.Signal)
// ... and finally the server itself
sigHandler.OnClose(dnsSrv)
- return &cli{servers: servers, sh: sigHandler}, nil
+ return &cli{servers: servers, sh: sigHandler}
}
func (c *cli) run() {
@@ -172,8 +168,7 @@ func (c *cli) run() {
}
func main() {
- c, err := newCli(os.Stderr, os.Args[1:], defaultConfigFile(), make(chan os.Signal, 1))
- if err == nil {
- c.run()
- }
+ sig := make(chan os.Signal, 1)
+ c := newCli(os.Stderr, os.Args[1:], configPath(), sig)
+ c.run()
}
diff --git a/cmd/zdns/main_test.go b/cmd/zdns/main_test.go
index 4b4d6ad..dfe0b10 100644
--- a/cmd/zdns/main_test.go
+++ b/cmd/zdns/main_test.go
@@ -39,10 +39,7 @@ hijack_mode = "zero"
defer os.Remove(f)
sig := make(chan os.Signal, 1)
- cli, err := newCli(ioutil.Discard, []string{"-f", f}, f, sig)
- if err != nil {
- t.Fatal(err)
- }
+ cli := newCli(ioutil.Discard, []string{"-f", f}, f, sig)
sig <- syscall.SIGTERM
cli.sh.Close()
}