diff --git a/src/cmd/test/main.go b/src/cmd/test/main.go index 8a84c2b..d9832ac 100644 --- a/src/cmd/test/main.go +++ b/src/cmd/test/main.go @@ -8,13 +8,19 @@ import( var( tools = multitool.Tools{ - "echo" : func(args []string) { - fmt.Println(args) + "echo" : multitool.Tool{ + func(args []string) { + fmt.Println(args) + }, + "print string to standard output string", }, - "sum" : func(args []string) { - one, _ := strconv.Atoi(args[1]) - two, _ := strconv.Atoi(args[2]) - fmt.Println(one + two) + "sum" : multitool.Tool{ + func(args []string) { + one, _ := strconv.Atoi(args[1]) + two, _ := strconv.Atoi(args[2]) + fmt.Println(one + two) + }, + "add one value to another", }, } ) diff --git a/src/multitool/main.go b/src/multitool/main.go index 21d5f21..8743056 100644 --- a/src/multitool/main.go +++ b/src/multitool/main.go @@ -6,8 +6,13 @@ import( "path" ) +type Tool struct { + Handler func(args []string) + Desc string +} -type Tools map[string] func(args []string) + +type Tools map[string] Tool func Main(name string, m Tools) { var( @@ -20,8 +25,8 @@ func Main(name string, m Tools) { args = os.Args[:] } else { if len(os.Args)<2 { - for k, _ := range m { - fmt.Printf("%s\n", k) + for k, v := range m { + fmt.Printf("%s:\t%s\n", k, v.Desc) } os.Exit(0) } @@ -34,6 +39,6 @@ func Main(name string, m Tools) { os.Exit(1) } - m[utilName](args) + m[utilName].Handler(args) }