Exemple #1
0
func BuildStopCmd(c *cli.Context, client drone.Client) error {
	var (
		nameParam = c.Args().Get(0)
		numParam  = c.Args().Get(1)
		jobParam  = c.Args().Get(2)

		err   error
		owner string
		name  string
		num   int
		job   int
	)

	// jobs are really only useful to matrix builds. So if the
	// job is not specified we'll assume it isn't a matrix build
	// and we'll cancel job number 1
	if len(jobParam) == 0 {
		jobParam = "1"
	}

	num, err = strconv.Atoi(numParam)
	if err != nil {
		return fmt.Errorf("Invalid or missing build number")
	}
	job, err = strconv.Atoi(jobParam)
	if err != nil {
		return fmt.Errorf("Invalid or missing job number")
	}
	owner, name, err = parseRepo(nameParam)
	if err != nil {
		return err
	}

	err = client.BuildStop(owner, name, num, job)
	if err != nil {
		return err
	}

	fmt.Printf("stopping build %d job %d\n", num, job)
	return nil
}