func runDeploy(cmd *Command, args []string) { r, w := io.Pipe() if len(args) < 1 { printFatal("You must specify an image to deploy") } image := args[0] form := &PostDeployForm{Image: image} var endpoint string appName, _ := app() if appName != "" { endpoint = fmt.Sprintf("/apps/%s/deploys", appName) } else { endpoint = "/deploys" } go func() { must(client.Post(w, endpoint, form)) must(w.Close()) }() outFd, isTerminalOut := term.GetFdInfo(os.Stdout) must(jsonmessage.DisplayJSONMessagesStream(r, os.Stdout, outFd, isTerminalOut)) }
func runDeploy(cmd *Command, args []string) { r, w := io.Pipe() if len(args) < 1 { printFatal("You must specify an image to deploy") } image := args[0] form := &PostDeployForm{Image: image} go func() { must(client.Post(w, "/deploys", form)) must(w.Close()) }() outFd, isTerminalOut := term.GetFdInfo(os.Stdout) must(jsonmessage.DisplayJSONMessagesStream(r, os.Stdout, outFd, isTerminalOut)) }
func main() { log.SetFlags(0) // make sure command is specified, disallow global args args := os.Args[1:] if len(args) < 1 || strings.IndexRune(args[0], '-') == 0 { printUsageTo(os.Stderr) os.Exit(2) } inFd, isTerminalIn = term.GetFdInfo(os.Stdin) outFd, isTerminalOut = term.GetFdInfo(os.Stdout) if !isTerminalOut { ansi.DisableColors(true) } initClients() for _, cmd := range commands { if matchesCommand(cmd, args[0]) && cmd.Run != nil { defer recoverPanic() cmd.Flag.SetDisableDuplicates(true) // disallow duplicate flag options if !gitConfigBool("hk.strict-flag-ordering") { cmd.Flag.SetInterspersed(true) // allow flags & non-flag args to mix } cmd.Flag.Usage = func() { cmd.PrintUsage() } if cmd.NeedsApp { cmd.Flag.StringVarP(&flagApp, "app", "a", "", "app name") } if err := cmd.Flag.Parse(args[1:]); err == flag.ErrHelp { cmdHelp.Run(cmdHelp, args[:1]) return } else if err != nil { printError(err.Error()) os.Exit(2) } if flagApp != "" { if gitRemoteApp, err := appFromGitRemote(flagApp); err == nil { flagApp = gitRemoteApp } } if cmd.NeedsApp { a, err := app() switch { case err == errMultipleHerokuRemotes, err == nil && a == "": msg := "no app specified" if err != nil { msg = err.Error() } printError(msg) cmd.PrintUsage() os.Exit(2) case err != nil: printFatal(err.Error()) } } cmd.Run(cmd, cmd.Flag.Args()) return } } fmt.Fprintf(os.Stderr, "Unknown command: %s\n", args[0]) if g := suggest(args[0]); len(g) > 0 { fmt.Fprintf(os.Stderr, "Possible alternatives: %v\n", strings.Join(g, " ")) } fmt.Fprintf(os.Stderr, "Run 'emp help' for usage.\n") os.Exit(2) }