Alejandro Mery
1 year ago
1 changed files with 32 additions and 8 deletions
@ -1,29 +1,53 @@
|
||||
package dns |
||||
|
||||
import ( |
||||
"bytes" |
||||
"context" |
||||
"fmt" |
||||
"io" |
||||
"os" |
||||
"time" |
||||
|
||||
"darvaza.org/core" |
||||
"github.com/libdns/libdns" |
||||
) |
||||
|
||||
// Show shows current DNS entries
|
||||
func (mgr *Manager) Show(ctx context.Context, names ...string) error { |
||||
var buf bytes.Buffer |
||||
|
||||
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) |
||||
_ = fmtRecord(&buf, rr) |
||||
_, _ = buf.WriteRune('\n') |
||||
} |
||||
_, _ = fmt.Fprintf(&buf, "; %v records\n", len(recs)) |
||||
|
||||
_, err = buf.WriteTo(os.Stdout) |
||||
return err |
||||
} |
||||
|
||||
func fmtRecord(w io.Writer, rr libdns.Record) error { |
||||
ttl := int(rr.TTL / time.Second) |
||||
if ttl < 1 { |
||||
ttl = 1 |
||||
} |
||||
|
||||
_, err := fmt.Fprintf(w, "%s\t%v\tIN\t%s\t%s", |
||||
rr.Name, |
||||
ttl, |
||||
rr.Type, |
||||
rr.Value) |
||||
|
||||
if err == nil { |
||||
if rr.ID != "" { |
||||
_, err = fmt.Fprintf(w, "\t; %s", rr.ID) |
||||
} |
||||
} |
||||
|
||||
_, _ = fmt.Printf("; %v records\n", len(recs)) |
||||
return nil |
||||
return err |
||||
} |
||||
|
Loading…
Reference in new issue