woodpecker/cli/restart.go
2014-09-24 21:24:12 -07:00

40 lines
810 B
Go

package main
import (
"github.com/codegangsta/cli"
"github.com/drone/drone/client"
)
// NewRestartCommand returns the CLI command for "restart".
func NewRestartCommand() cli.Command {
return cli.Command{
Name: "restart",
Usage: "restarts a build on the server",
Flags: []cli.Flag{},
Action: func(c *cli.Context) {
handle(c, restartCommandFunc)
},
}
}
// restartCommandFunc executes the "restart" command.
func restartCommandFunc(c *cli.Context, client *client.Client) error {
var host, owner, repo, branch, sha string
var args = c.Args()
if len(args) != 0 {
host, owner, repo = parseRepo(args[0])
}
switch len(args) {
case 2:
branch = "master"
sha = args[1]
case 3,4,5:
branch = args[1]
sha = args[2]
}
return client.Commits.Rebuild(host, owner, repo, branch, sha)
}