id = "borgbackup"
name = "BorgBackup"
homepage = "https://borgbackup.readthedocs.io/"
description = "Deduplicating archiver with compression and authenticated encryption."
executables = ["borg"]
[dotfiles]
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"]