tmuxinatorSpec top-level property

FigSpec tmuxinatorSpec
final

Implementation

final FigSpec tmuxinatorSpec = FigSpec(
  name: 'tmuxinator',
  description: 'Create and manage tmux sessions easily',
  subcommands: [
    FigSubcommand(
      name: 'commands',
      description: 'Lists commands available in tmuxinator',
    ),
    FigSubcommand(
      name: 'completions',
      description: 'Used for shell completion',
    ),
    FigSubcommand(
      name: 'copy',
      description:
          'Copy an existing project to a new project and open it in your editor',
      args: [
        FigArg(
          name: 'source',
          description: 'The source project name',
          generators: projects,
        ),
        FigArg(
          name: 'target',
          description: 'The target project name',
          generators: projects,
        ),
      ],
    ),
    FigSubcommand(
      name: 'debug',
      description: 'Output the shell commands that are generated by tmuxinator',
      options: [
        FigOption(
          name: ['-a', '--attach'],
          description: 'Attach to tmux session after creation',
          args: [
            FigArg(
              name: 'attach-session',
              description: 'Attach to tmux session',
            ),
          ],
        ),
        FigOption(
          name: ['-n', '--name'],
          description: 'Give the session a different name',
          args: [
            FigArg(
              name: 'name',
              description: 'Give the session a different name',
            ),
          ],
        ),
        FigOption(
          name: ['-p', '--project-config'],
          description: 'Path to project config file',
          args: [
            FigArg(
              name: 'project-config',
              description: 'Path to project config file',
              template: ['folders', 'filepaths'],
            ),
          ],
        ),
      ],
    ),
    FigSubcommand(
      name: 'delete',
      description: 'Deletes given project',
      args: [
        FigArg(
          name: 'project',
          description: 'The project name',
          generators: projects,
          isVariadic: true,
        ),
      ],
    ),
    FigSubcommand(
      name: 'doctor',
      description: 'Look for problems in your configuration',
    ),
    FigSubcommand(
      name: 'help',
      description: 'Describe available commands or one specific command',
      args: [
        FigArg(
          name: 'command',
          description: 'The tmuxinator commands',
          template: 'help',
        ),
      ],
    ),
    FigSubcommand(
      name: 'implode',
      description: 'Deletes all tmuxinator projects',
    ),
    FigSubcommand(
      name: 'list',
      description: 'Lists all tmuxinator projects',
      options: [
        FigOption(
          name: ['-n', '--newline'],
          description: 'Force output to be one entry per line',
        ),
      ],
    ),
    FigSubcommand(
      name: 'local',
      description: 'Start a tmux session using ./.tmuxinator.y[a]ml',
      options: [
        FigOption(
          name: '--suppress-tmux-version-warning',
          description: "Don't show a warning for unsupported tmux versions",
        ),
      ],
    ),
    FigSubcommand(
      name: 'new',
      description: 'Create a new project file and open it in your editor',
      args: [
        FigArg(
          name: 'project',
          description: 'The project name',
        ),
        FigArg(
          name: 'tmux-session',
          description: 'The tmux session name',
          generators: tmuxsessions,
          isOptional: true,
        ),
      ],
      options: [
        FigOption(
          name: '-l',
          description: 'Create local project file at ./.tmuxinator.y[a]ml',
        ),
      ],
    ),
    FigSubcommand(
      name: 'edit',
      description: 'Open a project file it in your editor',
      args: [
        FigArg(
          name: 'project',
          description: 'The project name',
          generators: projects,
        ),
      ],
      options: [
        FigOption(
          name: '-l',
          description: 'Open local project file at ./.tmuxinator.y[a]ml',
        ),
      ],
    ),
    FigSubcommand(
      name: 'open',
      description: 'Open a project file it in your editor',
      args: [
        FigArg(
          name: 'project',
          description: 'The project name',
          generators: projects,
        ),
      ],
      options: [
        FigOption(
          name: '-l',
          description: 'Open local project file at ./.tmuxinator.y[a]ml',
        ),
      ],
    ),
    FigSubcommand(
      name: 'start',
      description:
          "Start a tmux session using a project's name (with an optional [ALIAS] for project reuse) or a path to a project config file (via the -p flag)",
      args: [
        FigArg(
          name: 'project',
          description: 'The project name',
          generators: projects,
          loadSpec: FigSubcommand(
            name: 'project',
            options: [
              FigOption(
                name: ['-a', '--attach'],
                description: 'Attach to tmux session after creation',
                args: [
                  FigArg(
                    name: 'attach-session',
                    description: 'Attach to tmux session',
                  ),
                ],
              ),
              FigOption(
                name: ['-n', '--name'],
                description: 'Give the session a different name',
                args: [
                  FigArg(
                    name: 'name',
                    description: 'Give the session a different name',
                  ),
                ],
              ),
              FigOption(
                name: ['-p', '--project-config'],
                description: 'Path to project config file',
                args: [
                  FigArg(
                    name: 'project-config',
                    description: 'Path to project config file',
                    template: ['folders', 'filepaths'],
                  ),
                ],
              ),
              FigOption(
                name: '--suppress-tmux-version-warning',
                description:
                    "Don't show a warning for unsupported tmux versions",
              ),
            ],
          ),
        ),
      ],
    ),
    FigSubcommand(
      name: 'stop',
      description: "Stop a tmux session using a project's tmuxinator config",
      args: [
        FigArg(
          name: 'project',
          description: 'The project name',
          generators: projects,
          loadSpec: FigSubcommand(
            name: 'project',
            options: [
              FigOption(
                name: '--suppress-tmux-version-warning',
                description:
                    "Don't show a warning for unsupported tmux versions",
              ),
            ],
          ),
        ),
      ],
    ),
    FigSubcommand(
      name: 'version',
      description: 'Display installed tmuxinator version',
    ),
  ],
);