From 8845a8ca1e36f137982d8a42f5ae03d5edf44f94 Mon Sep 17 00:00:00 2001 From: Tim Foerster Date: Thu, 14 Dec 2017 23:43:08 +0100 Subject: [PATCH] Add cli cmd Signed-off-by: Tim Foerster --- cli.go | 38 ++++++++++++++++++++++++++++++++++++++ main.go | 17 +---------------- 2 files changed, 39 insertions(+), 16 deletions(-) create mode 100644 cli.go diff --git a/cli.go b/cli.go new file mode 100644 index 0000000..76703f3 --- /dev/null +++ b/cli.go @@ -0,0 +1,38 @@ +package main + +import ( + "errors" + "fmt" + "time" + + "github.com/spf13/cobra" +) + +var ( + COUNT = 5 + MAX_HOPS = 64 + RING_BUFFER_SIZE = 8 +) + +// rootCmd represents the root command +var RootCmd = &cobra.Command{ + Use: "mtr TARGET", + RunE: func(cmd *cobra.Command, args []string) error { + if len(args) != 1 { + return errors.New("No target provided") + } + fmt.Println("Start:", time.Now()) + m := NewMTR(args[0]) + for i := 0; i < COUNT; i++ { + m.Run() + } + m.Render() + return nil + }, +} + +func init() { + RootCmd.Flags().IntVarP(&COUNT, "count", "c", COUNT, "Amount of pings per target") + RootCmd.Flags().IntVar(&MAX_HOPS, "max-hops", MAX_HOPS, "Maximal TTL count") + RootCmd.Flags().IntVar(&RING_BUFFER_SIZE, "buffer-size", RING_BUFFER_SIZE, "Cached packet buffer size") +} diff --git a/main.go b/main.go index d0242b5..fe4fdca 100644 --- a/main.go +++ b/main.go @@ -1,20 +1,5 @@ package main -import ( - "fmt" - "time" -) - -var ( - MAX_HOPS = 64 - RING_BUFFER_SIZE = 8 -) - func main() { - fmt.Println("Start:", time.Now()) - m := NewMTR("8.8.8.8") - m.Run() - m.Run() - m.Run() - m.Render() + RootCmd.Execute() }