From b88d5292da1deeab6a56a2ae95908aa9a571a134 Mon Sep 17 00:00:00 2001 From: Leo Date: Tue, 23 May 2023 20:00:42 +0800 Subject: [PATCH] chore: Classic Printer Change --- cmd/cmd.go | 4 ++-- printer/easy.go | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 printer/easy.go diff --git a/cmd/cmd.go b/cmd/cmd.go index b922f0c..c0a0dca 100644 --- a/cmd/cmd.go +++ b/cmd/cmd.go @@ -46,7 +46,7 @@ func Excute() { dn42 := parser.Flag("", "dn42", &argparse.Options{Help: "DN42 Mode"}) output := parser.Flag("o", "output", &argparse.Options{Help: "Write trace result to file (RealTimePrinter ONLY)"}) tablePrint := parser.Flag("t", "table", &argparse.Options{Help: "Output trace results as table"}) - classicPrint := parser.Flag("c", "classic", &argparse.Options{Help: "Classic Output trace results like BestTrace"}) + classicPrint := parser.Flag("c", "classic", &argparse.Options{Help: "An Output Easy to Parse"}) beginHop := parser.Int("f", "first", &argparse.Options{Default: 1, Help: "Start from the first_ttl hop (instead from 1)"}) maptrace := parser.Flag("M", "map", &argparse.Options{Help: "Disable Print Trace Map"}) ver := parser.Flag("v", "version", &argparse.Options{Help: "Print version info and exit"}) @@ -191,7 +191,7 @@ func Excute() { if !*tablePrint { if *classicPrint { - conf.RealtimePrinter = printer.ClassicPrinter + conf.RealtimePrinter = printer.EasyPrinter } else { if *output { conf.RealtimePrinter = tracelog.RealtimePrinter diff --git a/printer/easy.go b/printer/easy.go new file mode 100644 index 0000000..ab57192 --- /dev/null +++ b/printer/easy.go @@ -0,0 +1,17 @@ +package printer + +import ( + "fmt" + + "github.com/xgadget-lab/nexttrace/trace" +) + +func EasyPrinter(res *trace.Result, ttl int) { + for i := range res.Hops[ttl] { + if res.Hops[ttl][i].Address == nil { + fmt.Printf("%d|*||||||\n", ttl+1) + continue + } + fmt.Printf("%d|%s|%s|%s|%s|%s|%s|%s|%s|%.4f|%.4f\n", ttl+1, res.Hops[ttl][i].Address.String(), res.Hops[ttl][i].Hostname, res.Hops[ttl][i].Geo.Asnumber, res.Hops[ttl][i].Geo.Country, res.Hops[ttl][i].Geo.Prov, res.Hops[ttl][i].Geo.City, res.Hops[ttl][i].Geo.District, res.Hops[ttl][i].Geo.Owner, res.Hops[ttl][i].Geo.Lat, res.Hops[ttl][i].Geo.Lng) + } +}