Browse Source

jpictl: introduce `jpictl dns show` command

to list dns entries

Signed-off-by: Alejandro Mery <amery@jpi.io>
pull/27/head
Alejandro Mery 1 year ago
parent
commit
440dcde50a
  1. 18
      cmd/jpictl/dns.go
  2. 29
      pkg/dns/show.go

18
cmd/jpictl/dns.go

@ -132,9 +132,27 @@ var dnsSyncCmd = &cobra.Command{
},
}
var dnsShowCmd = &cobra.Command{
Use: "show [<name>...]",
Short: "dns show lists entries on DNS for our domain",
PreRun: setVerbosity,
RunE: func(cmd *cobra.Command, args []string) error {
mgr, err := newDNSManagerCommand(cmd, true, true)
if err != nil {
return err
}
ctx, cancel := context.WithTimeout(context.Background(), DNSSyncTimeout)
defer cancel()
return mgr.Show(ctx, args...)
},
}
func init() {
rootCmd.AddCommand(dnsCmd)
dnsCmd.AddCommand(dnsWriteCmd)
dnsCmd.AddCommand(dnsSyncCmd)
dnsCmd.AddCommand(dnsShowCmd)
}

29
pkg/dns/show.go

@ -0,0 +1,29 @@
package dns
import (
"context"
"fmt"
"time"
"darvaza.org/core"
)
// Show shows current DNS entries
func (mgr *Manager) Show(ctx context.Context, names ...string) error {
recs, err := mgr.GetRecords(ctx, names...)
if err != nil {
return core.Wrap(err, "GetRecords")
}
for _, rr := range recs {
_, _ = fmt.Printf("%s\t%v\tIN\t%s\t%s\t; %s\n",
rr.Name,
int(rr.TTL/time.Second),
rr.Type,
rr.Value,
rr.ID)
}
_, _ = fmt.Printf("; %v records\n", len(recs))
return nil
}
Loading…
Cancel
Save