mountSpec top-level property

FigSpec mountSpec
final

Implementation

final FigSpec mountSpec = FigSpec(
  name: 'mount',
  description: 'Mount disks and manage subtrees',
  args: [
    FigArg(
      name: 'Disk/loopfile',
      template: 'filepaths',
      generators: [
        FigGenerator(
          script: ['cat', '/proc/partitions'],
          postProcess: (String out, [List<String>? tokens]) {
            return out
                .trim()
                .split('\n')
                .sublist(2)
                .map((line) => '/dev/' + line.split(' ').last)
                .where((x) => x != '/dev/')
                .map((blk) =>
                    FigSuggestion(name: blk, description: 'Block device'))
                .toList();
          },
        ),
        FigGenerator(
          script: ['ls', '-1', '/dev/mapper'],
          postProcess: (String out, [List<String>? tokens]) {
            return out
                .trim()
                .split('\n')
                .where((x) => x.isNotEmpty)
                .map((blk) => FigSuggestion(
                      name: '/dev/mapper/' + blk,
                      description: 'Mapped block device',
                    ))
                .toList();
          },
        ),
      ],
    ),
    FigArg(
      name: 'mountpoint',
      template: 'folders',
      suggestions: [
        FigSuggestion(name: '/mnt'),
        FigSuggestion(name: '/run/media/'),
      ],
    ),
  ],
  options: [
    FigOption(
      name: ['-h', '--help'],
      description: 'Help for abc',
    ),
    FigOption(
      name: ['-a', '--all'],
      description: 'Mount all filesystems in fstab',
    ),
    FigOption(
      name: ['-c', '--no-canonicalize'],
      description: "Don't canonicalize paths",
    ),
    FigOption(
      name: ['-f', '--fake'],
      description: 'Dry run; skip the mount(2) syscall',
    ),
    FigOption(
      name: ['-F', '--fork'],
      description: 'Fork off for each device (use with -a)',
    ),
    FigOption(
      name: ['-T', '--fstab'],
      description: 'Alternative file to /etc/fstab',
      args: FigArg(
        name: 'fstab',
        template: 'filepaths',
        defaultValue: '/etc/fstab',
      ),
    ),
    FigOption(
      name: ['-i', '--internal-only'],
      description: "Don't call the mount.<type> helpers",
    ),
    FigOption(
      name: ['-l', '--show-labels'],
      description: 'Show also filesystem labels',
    ),
    FigOption(
      name: ['-m', '--mkdir'],
      description: "Alias to '-o X-mount.mkdir",
    ),
    FigOption(
      name: ['-n', '--no-mtab'],
      description: "Don't write to /etc/mtab",
    ),
    FigOption(
      name: '--options-mode',
      description: 'What to do with options loaded from fstab',
      args: FigArg(
        name: 'mode',
      ),
    ),
    FigOption(
      name: '--options-source',
      description: 'Mount options source',
      args: FigArg(
        name: 'source',
        template: 'filepaths',
      ),
    ),
    FigOption(
      name: '--options-source-force',
      description: 'Force use of options from fstab/mtab',
    ),
    FigOption(
      name: ['-o', '--options'],
      description: 'Comma-separated list of mount options',
      args: FigArg(
        name: 'list',
      ),
    ),
    FigOption(
      name: ['-O', '--test-opts'],
      description: 'Limit the set of filesystems (use with -a)',
      args: FigArg(
        name: 'list',
      ),
    ),
    FigOption(
      name: ['-r', '--read-only'],
      description: 'Mount the filesystem read-only (same as -o ro)',
    ),
    FigOption(
      name: ['-t', '--types'],
      description: 'Limit the set of filesystem types',
      args: FigArg(
        name: 'list',
      ),
    ),
    FigOption(
      name: '--source',
      description: 'Explicitly specifies source',
      args: FigArg(
        name: 'source',
        suggestions: [
          FigSuggestion(name: 'path'),
          FigSuggestion(name: 'label'),
          FigSuggestion(name: 'uuid'),
        ],
      ),
    ),
    FigOption(
      name: '--target',
      description: 'Explicitly specifies mountpoint',
      args: FigArg(
        name: 'mountpoint',
        template: 'folders',
      ),
    ),
    FigOption(
      name: '--target-prefix',
      description: 'Specifies path used for all mountpoints',
      args: FigArg(
        name: 'path',
        template: 'folders',
      ),
    ),
    FigOption(
      name: ['-v', '--verbose'],
      description: 'Say what is being done',
    ),
    FigOption(
      name: ['-w', '--rw', '--read-write'],
      description: 'Mount the filesystem read-write (default)',
    ),
    FigOption(
      name: ['-V', '--version'],
      description: 'Display version',
    ),
    FigOption(
      name: ['-B', '--bind'],
      description: 'Mount a subtree somewhere else (same as -o bind)',
    ),
    FigOption(
      name: ['-M', '--move'],
      description: 'Move a subtree to some other place',
    ),
    FigOption(
      name: ['-R', '-rbind'],
      description: 'Mount a subtree and all submounts somewhere else',
    ),
    FigOption(
      name: '--make-shared',
      description: 'Mark a subtree as shared',
    ),
    FigOption(
      name: '--make-slave',
      description: 'Mark a subtree as slave',
    ),
    FigOption(
      name: '--make-private',
      description: 'Mark a subtree as private',
    ),
    FigOption(
      name: '--make-unbindable',
      description: 'Mark a subtree as unbindable',
    ),
    FigOption(
      name: '--make-rshared',
      description: 'Recursively mark a whole subtree as shared',
    ),
    FigOption(
      name: '--make-rslave',
      description: 'Recursively mark a whole subtree as slave',
    ),
    FigOption(
      name: '--make-rprivate',
      description: 'Recursively mark a whole subtree as private',
    ),
    FigOption(
      name: '--make-runbindable',
      description: 'Recursively mark a whole subtree as unbindable',
    ),
  ],
);