diff options
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/resolver/main.go | 16 | ||||
| -rw-r--r-- | cmd/resolver/resolver.go | 44 |
2 files changed, 60 insertions, 0 deletions
diff --git a/cmd/resolver/main.go b/cmd/resolver/main.go index 7126651..62af801 100644 --- a/cmd/resolver/main.go +++ b/cmd/resolver/main.go @@ -20,6 +20,7 @@ const ( cmdEnv = "env" cmdHostsd = "hosts.d" cmdQuery = "query" + cmdZoned = "zone.d" subCmdAdd = "add" subCmdCreate = "create" @@ -85,6 +86,10 @@ func main() { rsol.doCmdQuery(args) + case cmdZoned: + args = args[1:] + rsol.doCmdZoned(args) + default: log.Printf("resolver: unknown command: %s", rsol.cmd) os.Exit(2) @@ -230,6 +235,17 @@ hosts.d rr delete <name> <domain> Delete record from hosts file "name" by domain name. +=== MANAGING ZONE.D + +zone.d create <name> + + Create new zone file inside the zone.d directory. + +zone.d delete <name> + + Delete zone file inside the zone.d directory. + + == Examples === QUERY diff --git a/cmd/resolver/resolver.go b/cmd/resolver/resolver.go index 792f8d9..75287db 100644 --- a/cmd/resolver/resolver.go +++ b/cmd/resolver/resolver.go @@ -468,6 +468,50 @@ func (rsol *resolver) doCmdQuery(args []string) { } } +func (rsol *resolver) doCmdZoned(args []string) { + if len(args) == 0 { + log.Fatalf("resolver: %s: missing argument", rsol.cmd) + } + + var ( + subCmd = strings.ToLower(args[0]) + + resc *rescached.Client + err error + ) + + switch subCmd { + case subCmdCreate: + args = args[1:] + if len(args) == 0 { + log.Fatalf("resolver: %s %s: missing parameter name", rsol.cmd, subCmd) + } + + resc = rsol.newRescachedClient() + _, err = resc.ZonedCreate(args[0]) + if err != nil { + log.Fatalf("resolver: %s", err) + } + fmt.Println("OK") + + case subCmdDelete: + args = args[1:] + if len(args) == 0 { + log.Fatalf("resolver: %s %s: missing parameter name", rsol.cmd, subCmd) + } + + resc = rsol.newRescachedClient() + _, err = resc.ZonedDelete(args[0]) + if err != nil { + log.Fatalf("resolver: %s", err) + } + fmt.Println("OK") + + default: + log.Fatalf("resolver: %s: unknown sub command: %s", rsol.cmd, subCmd) + } +} + // initSystemResolver read the system resolv.conf to create fallback DNS // resolver. func (rsol *resolver) initSystemResolver() (err error) { |
