Implementation
final List<Option> dumpOptions = [
Option(
name: '--ignore-failed-read',
description: 'Do not exit with nonzero on unreadable files'),
Option(
name: '--restrict',
description: 'Disable the use of some potentially harmful options',
dependsOn: ['M', '-M', '--multi-volume']),
Option(
name: '--remove-files',
description: 'Remove files from disk after adding them to the archive'),
Option(
name: ['W', '-W', '--verify'],
description: 'Verify the archive after writing it'),
Option(
name: '--atime-preserve',
description: 'Preserve access times on dumped files',
args: [
Arg(
name: 'METHOD',
defaultValue: 'replace',
isOptional: true,
suggestions: [
FigSuggestion(
name: 'replace',
description: 'Restore the times after reading'),
FigSuggestion(
name: 'system',
description: 'Not setting the times in the first place')
])
]),
Option(
name: '--group',
description: 'Force NAME as group for added files',
args: [
Arg(
name: 'NAME[:GID]',
description:
'If GID is not supplied, NAME can be either a user name or numeric GID')
]),
Option(
name: '--group-map',
description: 'Read group translation map from FILE',
args: [
Arg(
name: 'FILE',
description:
'Each non-empty line in FILE defines translation for a single group',
template: 'filepaths')
]),
Option(
name: '--mode',
description: 'Force symbolic mode CHANGES for added files',
args: [Arg(name: 'CHANGE')]),
Option(name: '--mtime', description: 'Set mtime for added files', args: [
Arg(
name: 'DATE-OR-FILE',
description:
'Either a date/time in almost arbitrary format, or the name of an existing file',
template: 'filepaths')
]),
Option(
name: '--owner',
description: 'Force NAME as owner for added files',
args: [
Arg(
name: 'NAME[:GID]',
description:
'If UID is not supplied, NAME can be either a user name or numeric UID')
]),
Option(
name: '--owner-map',
description: 'Read owner translation map from FILE',
args: [
Arg(
name: 'FILE',
description:
'Each non-empty line in FILE defines translation for a single UID',
template: 'filepaths')
]),
Option(
name: '--sort',
description:
'When creating an archive, sort directory entries according to ORDER',
args: [
Arg(name: 'ORDER', defaultValue: 'none', suggestions: [
FigSuggestion(name: 'none'),
FigSuggestion(name: 'name'),
FigSuggestion(name: 'inode')
])
]),
Option(
name: '--add-file',
description: 'Add FILE to the archive',
args: [Arg(name: 'FILE', template: 'filepaths')]),
Option(
name: '--exclude',
description: 'Exclude files matching PATTERN',
args: [
Arg(name: 'PATTERN', description: 'A glob-style wildcard patter')
]),
Option(
name: '--exclude-backups', description: 'Exclude backup and lock files'),
Option(
name: '--exclude-caches',
description:
'Exclude contents of directories containing file CACHEDIR.TAG, except for the tag file itself',
exclusiveOn: ['--exclude-caches-all', '--exclude-caches-under']),
Option(
name: '--exclude-caches-all',
description:
'Exclude directories containing file CACHEDIR.TAG and the file itself',
exclusiveOn: ['--exclude-caches', '--exclude-caches-under']),
Option(
name: '--exclude-caches-under',
description:
'Exclude everything under directories containing CACHEDIR.TAG',
exclusiveOn: ['--exclude-caches', '--exclude-caches-all']),
Option(
name: '--exclude-ignore',
description:
'Read exclusion patterns from FILE in directory before dumping',
exclusiveOn: ['--exclude-ignore-recursive'],
args: [Arg(name: 'FIL')]),
Option(
name: '--exclude-ignore-recursive',
description:
'Same as --exclude-ignore, except that patterns from FILE affect both the directory and all its subdirectories',
exclusiveOn: ['--exclude-ignore'],
args: [Arg(name: 'FIL')]),
Option(
name: '--exclude-tag',
description:
'Exclude contents of directories containing FILE, except for FILE itself',
exclusiveOn: ['--exclude-tag-all', '--exclude-tag-under'],
args: [Arg(name: 'FIL')]),
Option(
name: '--exclude-tag-all',
description: 'Exclude directories containing FILE',
exclusiveOn: ['--exclude-tag', '--exclude-tag-under'],
args: [Arg(name: 'FIL')]),
Option(
name: '--exclude-tag-under',
description: 'Exclude everything under directories containing FILE',
exclusiveOn: ['--exclude-tag', '--exclude-tag-all'],
args: [Arg(name: 'FIL')]),
Option(
name: '--exclude-vcs',
description: 'Exclude version control system directories',
exclusiveOn: ['--exclude-vcs-ignores']),
Option(
name: '--exclude-vcs-ignores',
description:
'Exclude files that match patterns read from VCS-specific ignore files',
exclusiveOn: ['--exclude-vcs']),
Option(
name: ['h', '-h', '--dereference'],
description: 'Follow symlinks; archive and dump the files they point to'),
Option(
name: '--hard-dereference',
description:
'Follow hard links; archive and dump the files they refer to'),
Option(
name: ['N', '-N', '--newer', '--after-date'],
description: 'Only store files newer than DATE',
args: [
Arg(
name: 'DATE',
description:
'If DATE starts with / or . it is taken to be a file name',
template: 'filepaths')
]),
Option(
name: '--one-file-system',
description: 'Stay in local file system when creating archive'),
Option(
name: ['P', '-P', '--absolute-names'],
description: 'Don\'t strip leading slashes from file names'),
Option(
name: '--anchored',
description: 'Patterns match file name start',
dependsOn: ['--exclude'],
exclusiveOn: ['--no-anchored']),
Option(
name: '--ignore-case',
description: 'Ignore case',
dependsOn: ['--exclude'],
exclusiveOn: ['--no-ignore-case']),
Option(
name: '--no-anchored',
description: 'Patterns match after any /',
dependsOn: ['--exclude'],
exclusiveOn: ['--anchored']),
Option(
name: '--no-ignore-case',
description: 'Case sensitive matching',
dependsOn: ['--exclude'],
exclusiveOn: ['--ignore-case']),
Option(
name: '--no-wildcards',
description: 'Verbatim string matching',
dependsOn: ['--exclude'],
exclusiveOn: ['--wildcards']),
Option(
name: '--no-wildcards-match-slash',
description: 'Wildcards do not match /',
dependsOn: ['--exclude', '--wildcards'],
exclusiveOn: ['--no-wildcards', '--wildcards-match-slash']),
Option(
name: '--wildcards',
description: 'Use wildcards',
dependsOn: ['--exclude'],
exclusiveOn: ['--no-wildcards']),
Option(
name: '--wildcards-match-slash',
description: 'Wildcards match /',
dependsOn: ['--exclude', '--wildcards'],
exclusiveOn: ['--no-wildcards', '--no-wildcards-match-slash']),
Option(
name: '--clamp-mtime',
description:
'Only set time when the file is more recent than what was given with --mtime',
dependsOn: ['--mtime']),
Option(
name: ['l', '-l', '--check-links'],
description: 'Print a message if not all links are dumped'),
...compressionOptions
];