aptSpec top-level property

FigSpec aptSpec
final

Implementation

final FigSpec aptSpec = FigSpec(
  name: 'apt',
  description: 'Package manager for Debian-based Linux distributions',
  subcommands: [
    Subcommand(
      name: 'update',
      description: 'Update the package database',
      options: _yesNoOptions,
    ),
    Subcommand(
      name: 'upgrade',
      description: 'Install all available upgrades',
      args: [
        Arg(
          name: 'package',
          description: 'Package(s) to upgrade',
          isVariadic: true,
          isOptional: true,
          generators: [_upgradablePackages],
        )
      ],
      options: [..._installationOptions, ..._yesNoOptions, ..._simulate],
    ),
    Subcommand(
      name: 'full-upgrade',
      description:
          'Install available upgrades, removing currently installed packages if needed to upgrade the system as a whole',
      options: [..._installationOptions, ..._yesNoOptions, ..._simulate],
    ),
    Subcommand(
      name: 'install',
      description: 'Install package(s)',
      args: [
        Arg(
          name: 'package',
          description: 'The package you want to install',
          isVariadic: true,
          generators: [
            _packages,
            FigGenerator(
              template: 'filepaths',
              filterTemplateSuggestions: (suggestions) {
                return suggestions.where((s) {
                  final name = s.nameSingle;
                  return name != null && name.endsWith('.deb');
                }).toList();
              },
            ),
          ],
        )
      ],
      options: [
        ..._installationOptions,
        ..._yesNoOptions,
        ..._simulate,
        Option(
          name: '--reinstall',
          description: 'Reinstall the package if it is already installed',
        ),
        Option(
          name: ['-f', '--fix-broken'],
          description: 'Attempt to fix broken packages',
        ),
      ],
    ),
    Subcommand(
      name: 'reinstall',
      description: 'Reinstall package(s)',
      args: [
        Arg(
          name: 'package',
          description: 'The package you want to reinstall',
          isVariadic: true,
          generators: [_installedPackages],
        )
      ],
      options: [..._yesNoOptions, ..._simulate],
    ),
    Subcommand(
      name: 'remove',
      description: 'Remove package(s)',
      args: [
        Arg(
          name: 'package',
          description: 'The package you want to remove',
          isVariadic: true,
          generators: [_installedPackages],
        )
      ],
      options: [
        ..._yesNoOptions,
        ..._simulate,
        Option(
          name: ['-f', '--fix-broken'],
          description: 'Attempt to fix broken packages',
        ),
      ],
    ),
    Subcommand(
      name: 'purge',
      description: 'Remove package(s) and their configuration files',
      args: [
        Arg(
          name: 'package',
          description: 'The package you want to purge',
          isVariadic: true,
          generators: [_installedPackages],
        )
      ],
      options: [..._yesNoOptions, ..._simulate],
    ),
    Subcommand(
      name: ['autoremove', 'auto-remove'],
      description: 'Remove unused packages',
      options: [..._yesNoOptions, ..._simulate],
    ),
    Subcommand(
      name: 'list',
      description: 'List packages',
      options: [
        Option(
          name: '--installed',
          description: 'List installed packages',
        ),
        Option(
          name: '--upgradable',
          description: 'List upgradable packages',
        ),
      ],
    ),
    Subcommand(
      name: 'search',
      description: 'Search for packages',
      args: [
        Arg(
          name: 'query',
          description: 'The query to search for',
        )
      ],
      options: _yesNoOptions,
    ),
    Subcommand(
      name: 'show',
      description: 'Show package details',
      args: [
        Arg(
          name: 'package',
          description: 'The package you want to show',
          generators: [_packages],
        )
      ],
    ),
    Subcommand(
      name: 'satisfy',
      description: 'Satisfy package dependencies',
      args: [
        Arg(
          name: 'package',
          description: 'The package you want to satisfy',
          isVariadic: true,
          generators: [_packages],
        )
      ],
      options: [..._installationOptions, ..._yesNoOptions, ..._simulate],
    ),
    Subcommand(
      name: 'clean',
      description: 'Remove downloaded package files',
      options: [..._yesNoOptions, ..._simulate],
    ),
    Subcommand(
      name: 'edit-sources',
      description: 'Edit the list of package sources',
      options: _yesNoOptions,
    ),
    Subcommand(
      name: 'source',
      description: 'Fetch package source files',
      args: [
        Arg(
          name: 'package',
          description: 'The package you want to get source files for',
          isVariadic: true,
          generators: [_packages],
        )
      ],
      options: [
        ..._installationOptions,
        ..._yesNoOptions,
        ..._simulate,
        Option(
          name: '--compile',
          description:
              'Compile the package to a binary using dpkg-buildpackage',
        ),
        Option(
          name: '--only-source',
        ),
        Option(
          name: '--host-architecture',
          description: 'The architecture to build for',
          args: [
            Arg(
              name: 'architecture',
              description: 'The architecture to build for',
            )
          ],
        ),
      ],
    ),
    Subcommand(
      name: 'build-dep',
      description:
          'Install/remove packages in an attempt to satisfy the build dependencies for a source package',
      args: [
        Arg(
          name: 'package',
          description: 'The package you want to build dependencies for',
          generators: [_packages],
        )
      ],
      options: [
        ..._installationOptions,
        ..._yesNoOptions,
        ..._simulate,
        Option(
          name: '--host-architecture',
          description: 'The architecture to build for',
          args: [
            Arg(
              name: 'architecture',
              description: 'The architecture to build for',
            )
          ],
        ),
        Option(
          name: '--only-source',
        ),
      ],
    ),
    Subcommand(
      name: 'download',
      description: 'Download package binary into the current directory',
      args: [
        Arg(
          name: 'package',
          description: 'The package you want to download',
          generators: [_packages],
        )
      ],
      options: [..._installationOptions, ..._yesNoOptions],
    ),
    Subcommand(
      name: ['autoclean', 'auto-clean'],
      description:
          'Like clean, but only removes package files that can no longer be downloaded',
      options: [..._installationOptions, ..._yesNoOptions, ..._simulate],
    ),
    Subcommand(
      name: 'changelog',
      description: 'Show the changelog for a package',
      args: [
        Arg(
          name: 'package',
          description: 'The package you want to show the changelog for',
          generators: [_packages],
          isVariadic: true,
        )
      ],
      options: [..._installationOptions, ..._yesNoOptions],
    ),
  ],
  options: [
    Option(
      name: ['-h', '--help'],
      description: 'Print help message and exit',
      isPersistent: true,
      priority: 40,
    ),
    Option(
      name: ['-v', '--version'],
      description: 'Print version information and exit',
      isPersistent: true,
      priority: 40,
    ),
  ],
);