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  }