github.com/apex/up@v1.7.1/internal/cli/run/run.go (about) 1 package run 2 3 import ( 4 "github.com/apex/up/internal/cli/root" 5 "github.com/apex/up/internal/stats" 6 "github.com/apex/up/internal/util" 7 "github.com/pkg/errors" 8 "github.com/tj/kingpin" 9 ) 10 11 func init() { 12 cmd := root.Command("run", "Run a hook.") 13 cmd.Example(`up run build`, "Run build hook.") 14 cmd.Example(`up run clean`, "Run clean hook.") 15 16 hook := cmd.Arg("hook", "Name of the hook to run.").Required().String() 17 stage := cmd.Flag("stage", "Target stage name.").Short('s').Default("staging").String() 18 19 cmd.Action(func(_ *kingpin.ParseContext) error { 20 _, p, err := root.Init() 21 if err != nil { 22 return errors.Wrap(err, "initializing") 23 } 24 25 defer util.Pad()() 26 27 stats.Track("Hook", map[string]interface{}{ 28 "name": *hook, 29 }) 30 31 if err := p.Init(*stage); err != nil { 32 return errors.Wrap(err, "initializing") 33 } 34 35 return p.RunHook(*hook) 36 }) 37 }