id = "borgbackup" name = "BorgBackup" homepage = "https://borgbackup.readthedocs.io/" description = "Deduplicating archiver with compression and authenticated encryption." executables = ["borg"] [dotfiles] # https://borgbackup.readthedocs.io/en/master/usage/general.html documents # $BORG_CONFIG_DIR/default.yaml. Borg's official changelog explains that its # platformdirs integration uses ~/.config/borg on Linux and # ~/Library/Application Support/borg on macOS; the two named roots cover those # documented platform-native locations (and %APPDATA% on Windows). paths = [] secret = [ "[configHome]/borg/default.yaml", "[appData]/borg/default.yaml", ] side_effect = false [commands] format = 1 label = "Borg backup" description = "Create a new archive with borg create. Other borg subcommands, pattern options and stdin reading are not covered." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = true } [[commands.subcommand]] path = ["create"] label = "Create an archive" [[commands.subcommand.source]] id = "help" kind = "manual" url = "https://manpages.debian.org/unstable/borgbackup/borg-create.1.en.html" revision = "1.4.5" evidence = """ borg [common options] create [options] ARCHIVE [PATH...] -n, --dry-run do not create a backup archive -s, --stats print statistics for the created archive --list output verbose list of items (files, dirs, ...) --json output stats as JSON. Implies --stats. -e PATTERN, --exclude PATTERN exclude paths matching PATTERN --exclude-from EXCLUDEFILE read exclude patterns from EXCLUDEFILE, one per line --exclude-caches exclude directories that contain a CACHEDIR.TAG file -x, --one-file-system stay in the same file system and do not store mount points of other file systems --numeric-ids only store numeric user and group identifiers """ [[commands.subcommand.field]] id = "archive" label = "Archive (REPO::NAME)" description = "Repository and archive name, for example /backups/repo::{hostname}-{now}." type = "string" position = 0 min = 1 sources = ["help"] [[commands.subcommand.field]] id = "paths" label = "Paths to back up" type = "path" position = 1 multiple = true path = { kind = "any", role = "input" } sources = ["help"] [[commands.subcommand.field]] id = "dry_run" label = "Dry run" type = "boolean" option = ["--dry-run", "-n"] sources = ["help"] [[commands.subcommand.field]] id = "stats" label = "Print statistics" type = "boolean" option = ["--stats", "-s"] sources = ["help"] [[commands.subcommand.field]] id = "list" label = "List items" type = "boolean" option = ["--list"] sources = ["help"] [[commands.subcommand.field]] id = "json" label = "JSON stats" type = "boolean" option = ["--json"] sources = ["help"] [[commands.subcommand.field]] id = "exclude" label = "Exclude pattern" type = "string" option = ["--exclude", "-e"] multiple = true sources = ["help"] [[commands.subcommand.field]] id = "exclude_from" label = "Exclude file" type = "path" option = ["--exclude-from"] path = { kind = "file", role = "input" } sources = ["help"] [[commands.subcommand.field]] id = "exclude_caches" label = "Exclude cache directories" type = "boolean" option = ["--exclude-caches"] sources = ["help"] [[commands.subcommand.field]] id = "one_file_system" label = "Stay on one file system" type = "boolean" option = ["--one-file-system", "-x"] sources = ["help"] [[commands.subcommand.field]] id = "numeric_ids" label = "Numeric owner IDs" type = "boolean" option = ["--numeric-ids"] sources = ["help"] [[commands.subcommand.task]] id = "backup" label = "Back up paths" fields = ["archive", "paths", "stats", "list", "exclude", "one_file_system"] required = ["archive", "paths"] [[commands.subcommand.task]] id = "preview" label = "Dry run" set = { dry_run = [true], list = [true] } fields = ["archive", "paths", "dry_run", "list", "exclude"] required = ["archive", "paths"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["archive", "paths", "dry_run", "stats", "list"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["json", "exclude", "exclude_from", "exclude_caches", "one_file_system", "numeric_ids"]