diff options
| author | Shulhan <ms@kilabit.info> | 2022-04-24 11:19:38 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2022-04-24 11:24:54 +0700 |
| commit | bd144b51b440aaf07de8c775a96d6dafcdcad6bd (patch) | |
| tree | f4cf2b5ccff2e04c13e4a92670824ca8ca55fef1 /cmd/resolver/resolver.go | |
| parent | b6ae7b07309af5d0e4fd6b6d2615184054f98dd7 (diff) | |
| download | rescached-bd144b51b440aaf07de8c775a96d6dafcdcad6bd.tar.xz | |
cmd/resolver: simplify method to handle block.d command
Instead of splitting them into three methods, merge them into single
method.
Diffstat (limited to 'cmd/resolver/resolver.go')
| -rw-r--r-- | cmd/resolver/resolver.go | 103 |
1 files changed, 53 insertions, 50 deletions
diff --git a/cmd/resolver/resolver.go b/cmd/resolver/resolver.go index 47f5e15..6998964 100644 --- a/cmd/resolver/resolver.go +++ b/cmd/resolver/resolver.go @@ -45,77 +45,80 @@ type resolver struct { insecure bool } -// blockdDisable disable specific hosts on block.d. -func (rsol *resolver) blockdDisable(name string) (err error) { +func (rsol *resolver) doCmdBlockd(args []string) { + if len(args) == 0 { + log.Fatalf("resolver: %s: missing sub command", rsol.cmd) + } + var ( resc = rsol.newRescachedClient() hb interface{} hbjson []byte + subCmd string + err error ) - hb, err = resc.BlockdDisable(name) - if err != nil { - return err - } + subCmd = strings.ToLower(args[0]) - hbjson, err = json.MarshalIndent(hb, "", " ") - if err != nil { - return err - } + switch subCmd { + case subCmdDisable: + args = args[1:] + if len(args) == 0 { + log.Fatalf("resolver: %s %s: missing argument", rsol.cmd, subCmd) + } - fmt.Println(string(hbjson)) + hb, err = resc.BlockdDisable(args[0]) + if err != nil { + log.Fatalf("resolver: %s %s: %s", rsol.cmd, subCmd, err) + } - return nil -} + hbjson, err = json.MarshalIndent(hb, "", " ") + if err != nil { + log.Fatalf("resolver: %s %s: %s", rsol.cmd, subCmd, err) + } -// blockdEnable enable specific hosts on block.d. -func (rsol *resolver) blockdEnable(name string) (err error) { - var ( - resc = rsol.newRescachedClient() + fmt.Println(string(hbjson)) - hb interface{} - hbjson []byte - ) + case subCmdEnable: + args = args[1:] + if len(args) == 0 { + log.Fatalf("resolver: %s %s: missing argument", rsol.cmd, subCmd) + } - hb, err = resc.BlockdEnable(name) - if err != nil { - return err - } + hb, err = resc.BlockdEnable(args[0]) + if err != nil { + log.Fatalf("resolver: %s %s: %s", rsol.cmd, subCmd, err) + } - hbjson, err = json.MarshalIndent(hb, "", " ") - if err != nil { - return err - } + hbjson, err = json.MarshalIndent(hb, "", " ") + if err != nil { + log.Fatalf("resolver: %s %s: %s", rsol.cmd, subCmd, err) + } - fmt.Println(string(hbjson)) + fmt.Println(string(hbjson)) - return nil -} + case subCmdUpdate: + args = args[1:] + if len(args) == 0 { + log.Fatalf("resolver: %s %s: missing argument", rsol.cmd, subCmd) + } -// blockdUpdate fetch the latest hosts file from remote block.d URL defined by -// its name. -func (rsol *resolver) blockdUpdate(blockdName string) (err error) { - var ( - resc = rsol.newRescachedClient() + hb, err = resc.BlockdUpdate(args[0]) + if err != nil { + log.Fatalf("resolver: %s %s: %s", rsol.cmd, subCmd, err) + } - hb interface{} - hbjson []byte - ) + hbjson, err = json.MarshalIndent(hb, "", " ") + if err != nil { + log.Fatalf("resolver: %s %s: %s", rsol.cmd, subCmd, err) + } - hb, err = resc.BlockdUpdate(blockdName) - if err != nil { - return err - } + fmt.Println(string(hbjson)) - hbjson, err = json.MarshalIndent(hb, "", " ") - if err != nil { - return err + default: + log.Fatalf("resolver: %s: unknown sub command: %s", rsol.cmd, subCmd) } - - fmt.Println(string(hbjson)) - - return nil } // doCmdCaches call the rescached HTTP API to fetch all caches. |
