github.com/jdhenke/godel@v0.0.0-20161213181855-abeb3861bf0d/apps/gonform/generated_src/amalgomatedformatters.go (about) 1 // generated by amalgomate; DO NOT EDIT 2 package amalgomatedformatters 3 4 import ( 5 "fmt" 6 "sort" 7 8 gofmt "github.com/palantir/godel/apps/gonform/generated_src/internal/cmd/gofmt" 9 ptimports "github.com/palantir/godel/apps/gonform/generated_src/internal/github.com/palantir/checks/ptimports/main/ptimports" 10 ) 11 12 var programs = map[string]func(){"gofmt": func() { 13 gofmt.AmalgomatedMain() 14 }, "ptimports": func() { 15 ptimports.AmalgomatedMain() 16 }, 17 } 18 19 func Instance() Amalgomated { 20 return &amalgomated{} 21 } 22 23 type Amalgomated interface { 24 Run(cmd string) 25 Cmds() []string 26 } 27 28 type amalgomated struct{} 29 30 func (a *amalgomated) Run(cmd string) { 31 if _, ok := programs[cmd]; !ok { 32 panic(fmt.Sprintf("Unknown command: \"%v\". Valid values: %v", cmd, a.Cmds())) 33 } 34 programs[cmd]() 35 } 36 37 func (a *amalgomated) Cmds() []string { 38 var cmds []string 39 for key := range programs { 40 cmds = append(cmds, key) 41 } 42 sort.Strings(cmds) 43 return cmds 44 }