Implementation
final completionSpec = FigSpec(
name: "go-task",
description: "A task runner / simpler Make alternative written in Go",
icon: "https://taskfile.dev/favicon.ico",
args: [
FigArg(
generators: tasksGenerator,
isVariadic: true,
isOptional: true,
),
],
options: [
FigOption(
name: ["-a", "--list-all"],
description: "Lists tasks with or without a description",
),
FigOption(
name: ["-c", "--color"],
description:
"Colored output. Enabled by default. Set flag to false or use NO_COLOR=1 to disable (default true)",
requiresEquals: true,
args: [
FigArg(
name: "color",
suggestions: ["true", "false"],
),
],
),
FigOption(
name: ["-C", "--concurrency"],
description: "Limit number tasks to run concurrently",
args: [
FigArg(
name: "number",
),
],
),
FigOption(
name: DIRECTORY_FLAGS,
description: "Sets directory of execution",
exclusiveOn: TASKFILE_FLAGS,
args: [
FigArg(
name: "path",
template: ["folders"],
),
],
),
FigOption(
name: ["--dry"],
description:
"Compiles and prints tasks in the order that they would be run, without executing them",
),
FigOption(
name: ["-f", "--force"],
description: "Forces execution even when the task is up-to-date",
),
FigOption(
name: ["-h", "--help"],
description: "Shows Task usage",
),
FigOption(
name: ["-i", "--init"],
description: "Creates a new Taskfile.yml in the current folder",
),
FigOption(
name: ["-l", "--list"],
description: "Lists tasks with description of current Taskfile",
),
FigOption(
name: ["-o", "--output"],
description: "Sets output style",
args: [
FigArg(
name: "output",
suggestions: ["interleaved", "group", "prefixed"],
),
],
),
FigOption(
name: ["-p", "--parallel"],
description: "Executes tasks provided on command line in parallel",
),
FigOption(
name: ["-s", "--silent"],
description: "Disables echoing",
),
FigOption(
name: ["--status"],
description:
"Exits with non-zero exit code if any of the given tasks is not up-to-date",
),
FigOption(
name: ["--summary"],
description: "Show summary about a task",
),
FigOption(
name: TASKFILE_FLAGS,
description: "Choose which Taskfile to run",
exclusiveOn: DIRECTORY_FLAGS,
args: [
FigArg(
name: "taskfile",
defaultValue: "Taskfile.yml",
template: ["filepaths"],
),
],
),
FigOption(
name: ["-v", "--verbose"],
description: "Enables verbose mode",
),
FigOption(
name: ["--version"],
description: "Show Task version",
),
FigOption(
name: ["-w", "--watch"],
description: "Enables watch of the given task",
),
FigOption(
name: ["--"],
description: "Pass variables to the task",
args: [
FigArg(
name: "variables",
isVariadic: true,
optionsCanBreakVariadicArg: false,
),
],
),
],
);