homeySpec top-level property

FigSpec homeySpec
final

Implementation

final FigSpec homeySpec = FigSpec(
  name: 'homey',
  subcommands: [
    FigSubcommand(
      name: 'app',
      description: 'App related commands',
      subcommands: [
        FigSubcommand(
          name: 'add-types',
          description: 'Install the Apps SDK TypeScript declarations',
        ),
        FigSubcommand(
          name: 'build',
          description: 'Build a Homey App for publishing',
        ),
        FigSubcommand(
          name: 'compose',
          description: 'Migrate app to Homey compose',
        ),
        FigSubcommand(
          name: 'create',
          description: 'Create a new Homey App',
        ),
        FigSubcommand(
          name: 'discovery',
          description: 'Discovery related commands',
          subcommands: [
            FigSubcommand(
              name: 'create',
              description: 'Create a new Discovery strategy',
            ),
          ],
        ),
        FigSubcommand(
          name: 'driver',
          description: 'Driver related commands',
          subcommands: [
            FigSubcommand(
              name: 'capabilities',
              description: 'Change the capabilities of a Driver',
            ),
            FigSubcommand(
              name: 'create',
              description: 'Create a new Driver',
            ),
            FigSubcommand(
              name: 'flow',
              description: 'Create a new Flow for a Driver',
            ),
          ],
        ),
        FigSubcommand(
          name: 'flow',
          description: 'Flow related commands',
          subcommands: [
            FigSubcommand(
              name: 'create',
              description: 'Create a new Flow',
            ),
          ],
        ),
        FigSubcommand(
          name: 'install',
          description: 'Install a Homey App',
          options: [
            FigOption(
              name: ['-c', '--clean'],
              args: [
                FigArg(
                  name: 'clean',
                  defaultValue: 'false',
                  suggestions: [
                    const FigSuggestion(name: 'false'),
                    const FigSuggestion(name: 'true'),
                  ],
                ),
              ],
            ),
            FigOption(
              name: ['-s', '--skip-build'],
              args: [
                FigArg(
                  name: 'skip-build',
                  defaultValue: 'false',
                  suggestions: [
                    const FigSuggestion(name: 'false'),
                    const FigSuggestion(name: 'true'),
                  ],
                ),
              ],
            ),
          ],
        ),
        FigSubcommand(
          name: 'manage',
          description: 'View your app in the Homey Developer Tools',
        ),
        FigSubcommand(
          name: 'publish',
          description: 'Publish a Homey App to the Homey Apps Store',
        ),
        FigSubcommand(
          name: 'run',
          description: 'Run a Homey App in development mode',
          options: [
            FigOption(
              name: ['-c', '--clean'],
              args: [
                FigArg(
                  name: 'clean',
                  defaultValue: 'false',
                  suggestions: [
                    const FigSuggestion(name: 'false'),
                    const FigSuggestion(name: 'true'),
                  ],
                ),
              ],
            ),
            FigOption(
              name: ['-s', '--skip-build'],
              args: [
                FigArg(
                  name: 'skip-build',
                  defaultValue: 'false',
                  suggestions: [
                    const FigSuggestion(name: 'false'),
                    const FigSuggestion(name: 'true'),
                  ],
                ),
              ],
            ),
            FigOption(
              name: ['-l', '--link-modules'],
              description:
                  'Provide a comma-separated path to local Node.js modules to link. Only works on Homey Cloud',
              args: [FigArg(name: 'modules')],
            ),
          ],
        ),
        FigSubcommand(
          name: 'validate',
          description: 'Validate a Homey App',
          options: [
            FigOption(
              name: ['-l', '--level'],
              description: 'Validation level',
              args: [
                FigArg(
                  name: 'value',
                  suggestions: [
                    const FigSuggestion(name: 'debug'),
                    const FigSuggestion(name: 'publish'),
                    const FigSuggestion(name: 'verified'),
                  ],
                ),
              ],
            ),
          ],
        ),
        FigSubcommand(
          name: 'version',
          description: 'Update a Homey App\'s version',
          args: [
            FigArg(
              name: 'next',
              suggestions: [
                const FigSuggestion(name: 'patch'),
                const FigSuggestion(name: 'minor'),
                const FigSuggestion(name: 'major'),
                const FigSuggestion(
                  name: 'semver',
                  insertValue: '1.0.0',
                ),
              ],
            ),
          ],
        ),
        FigSubcommand(
          name: 'view',
          description: 'View your app in the Homey Apps Store',
        ),
      ],
      options: [
        FigOption(
          name: ['-p', '--path'],
          description: 'Path to a Homey App directory',
          isPersistent: true,
          args: [
            FigArg(template: 'folders'),
          ],
        ),
      ],
    ),
    FigSubcommand(
      name: 'docs',
      description: 'Open Homey Developer Documentation',
      icon: '📖',
    ),
    FigSubcommand(
      name: 'list',
      description: 'List all Homeys',
    ),
    FigSubcommand(
      name: 'login',
      description: 'Log in with an Athom Account',
    ),
    FigSubcommand(
      name: 'logout',
      description: 'Log out the current user',
    ),
    FigSubcommand(
      name: 'select',
      description: 'Select a Homey as active',
      options: [
        FigOption(
          name: ['-i', '--id'],
          description: 'ID of the Homey',
          args: [FigArg(name: 'id')],
        ),
        FigOption(
          name: ['-n', '--name'],
          description: 'Name of the Homey',
          args: [FigArg(name: 'name')],
        ),
      ],
    ),
    FigSubcommand(
      name: 'tools',
      description: 'Open Homey Developer Tools',
      icon: '🔧',
    ),
    FigSubcommand(
      name: 'unselect',
      description: 'Unselect the active Homey',
    ),
    FigSubcommand(
      name: 'whoami',
      description: 'Show the current logged in user',
    ),
  ],
  options: [
    FigOption(
      name: '--help',
      isPersistent: true,
    ),
    FigOption(
      name: '--version',
      isPersistent: true,
    ),
  ],
);