(deps commandDeps)
| 1389 | } |
| 1390 | |
| 1391 | func newTaskCancelCommand(deps commandDeps) *cobra.Command { |
| 1392 | var ( |
| 1393 | reason string |
| 1394 | metadataRaw string |
| 1395 | ) |
| 1396 | |
| 1397 | cmd := &cobra.Command{ |
| 1398 | Use: "cancel <id>", |
| 1399 | Short: "Cancel a task tree", |
| 1400 | Args: exactOneNonBlankArg(), |
| 1401 | RunE: func(cmd *cobra.Command, args []string) error { |
| 1402 | client, err := clientFromDeps(deps) |
| 1403 | if err != nil { |
| 1404 | return err |
| 1405 | } |
| 1406 | |
| 1407 | request := CancelTaskRequest{Reason: strings.TrimSpace(reason)} |
| 1408 | if cmd.Flags().Changed("metadata") { |
| 1409 | request.Metadata, err = parseJSONFlag("metadata", metadataRaw) |
| 1410 | if err != nil { |
| 1411 | return err |
| 1412 | } |
| 1413 | } |
| 1414 | |
| 1415 | canceled, err := client.CancelTask(cmd.Context(), args[0], request) |
| 1416 | if err != nil { |
| 1417 | return err |
| 1418 | } |
| 1419 | return writeCommandOutput(cmd, taskBundle(&canceled)) |
| 1420 | }, |
| 1421 | } |
| 1422 | cmd.Flags().StringVar(&reason, "reason", "", "Optional cancellation reason") |
| 1423 | cmd.Flags().StringVar(&metadataRaw, "metadata", "", "Optional cancellation metadata JSON") |
| 1424 | return cmd |
| 1425 | } |
| 1426 | |
| 1427 | func newTaskBlockCommand(deps commandDeps) *cobra.Command { |
| 1428 | input := taskBlockInput{} |
no test coverage detected