Pārlūkot izejas kodu

Improve configuration reference documentation readability via more aggressive word-wrapping in configuration schema descriptions.

Dan Helfman 5 gadi atpakaļ
vecāks
revīzija
7fb4061759
3 mainītis faili ar 274 papildinājumiem un 193 dzēšanām
  1. 2 0
      NEWS
  2. 264 193
      borgmatic/config/schema.yaml
  3. 8 0
      tests/integration/config/test_schema.py

+ 2 - 0
NEWS

@@ -1,5 +1,7 @@
 1.5.7.dev0
  * Update documentation code fragments theme to better match the rest of the page.
+ * Improve configuration reference documentation readability via more aggressive word-wrapping in
+   configuration schema descriptions.
 
 1.5.6
  * #292: Allow before_backup and similiar hooks to exit with a soft failure without altering the

+ 264 - 193
borgmatic/config/schema.yaml

@@ -3,9 +3,10 @@ version: 1
 map:
     location:
         desc: |
-            Where to look for files to backup, and where to store those backups. See
-            https://borgbackup.readthedocs.io/en/stable/quickstart.html and
-            https://borgbackup.readthedocs.io/en/stable/usage.html#borg-create for details.
+            Where to look for files to backup, and where to store those backups.
+            See https://borgbackup.readthedocs.io/en/stable/quickstart.html and
+            https://borgbackup.readthedocs.io/en/stable/usage/create.html
+            for details.
         required: true
         map:
             source_directories:
@@ -13,7 +14,8 @@ map:
                 seq:
                     - type: str
                 desc: |
-                    List of source directories to backup (required). Globs and tildes are expanded.
+                    List of source directories to backup (required). Globs and
+                    tildes are expanded.
                 example:
                     - /home
                     - /etc
@@ -23,21 +25,25 @@ map:
                 seq:
                     - type: str
                 desc: |
-                    Paths to local or remote repositories (required). Tildes are expanded. Multiple
-                    repositories are backed up to in sequence. See ssh_command for SSH options like
-                    identity file or port.
+                    Paths to local or remote repositories (required). Tildes are
+                    expanded. Multiple repositories are backed up to in
+                    sequence. See ssh_command for SSH options like identity file
+                    or port.
                 example:
                     - user@backupserver:sourcehostname.borg
             one_file_system:
                 type: bool
                 desc: |
-                  Stay in same file system (do not cross mount points). Defaults to false. But when
-                  a database hook is used, the setting here is ignored and one_file_system is
-                  considered true.
+                    Stay in same file system (do not cross mount points).
+                    Defaults to false. But when a database hook is used, the
+                    setting here is ignored and one_file_system is considered
+                    true.
                 example: true
             numeric_owner:
                 type: bool
-                desc: Only store/extract numeric user and group identifiers. Defaults to false.
+                desc: |
+                    Only store/extract numeric user and group identifiers.
+                    Defaults to false.
                 example: true
             atime:
                 type: bool
@@ -49,27 +55,32 @@ map:
                 example: false
             birthtime:
                 type: bool
-                desc: Store birthtime (creation date) into archive. Defaults to true.
+                desc: |
+                    Store birthtime (creation date) into archive. Defaults to
+                    true.
                 example: false
             read_special:
                 type: bool
                 desc: |
-                    Use Borg's --read-special flag to allow backup of block and other special
-                    devices. Use with caution, as it will lead to problems if used when
-                    backing up special devices such as /dev/zero. Defaults to false. But when a
-                    database hook is used, the setting here is ignored and read_special is
+                    Use Borg's --read-special flag to allow backup of block and
+                    other special devices. Use with caution, as it will lead to
+                    problems if used when backing up special devices such as
+                    /dev/zero. Defaults to false. But when a database hook is
+                    used, the setting here is ignored and read_special is
                     considered true.
                 example: false
             bsd_flags:
                 type: bool
-                desc: Record bsdflags (e.g. NODUMP, IMMUTABLE) in archive. Defaults to true.
+                desc: |
+                    Record bsdflags (e.g. NODUMP, IMMUTABLE) in archive.
+                    Defaults to true.
                 example: true
             files_cache:
                 type: str
                 desc: |
                     Mode in which to operate the files cache. See
-                    https://borgbackup.readthedocs.io/en/stable/usage/create.html#description for
-                    details. Defaults to "ctime,size,inode".
+                    http://borgbackup.readthedocs.io/en/stable/usage/create.html
+                    for details. Defaults to "ctime,size,inode".
                 example: ctime,size,inode
             local_path:
                 type: str
@@ -83,9 +94,10 @@ map:
                 seq:
                     - type: str
                 desc: |
-                    Any paths matching these patterns are included/excluded from backups. Globs are
-                    expanded. (Tildes are not.) Note that Borg considers this option experimental.
-                    See the output of "borg help patterns" for more details. Quote any value if it
+                    Any paths matching these patterns are included/excluded from
+                    backups. Globs are expanded. (Tildes are not.) Note that
+                    Borg considers this option experimental. See the output of
+                    "borg help patterns" for more details. Quote any value if it
                     contains leading punctuation, so it parses correctly.
                 example:
                     - 'R /'
@@ -96,17 +108,19 @@ map:
                 seq:
                     - type: str
                 desc: |
-                    Read include/exclude patterns from one or more separate named files, one pattern
-                    per line. Note that Borg considers this option experimental. See the output of
-                    "borg help patterns" for more details.
+                    Read include/exclude patterns from one or more separate
+                    named files, one pattern per line. Note that Borg considers
+                    this option experimental. See the output of "borg help
+                    patterns" for more details.
                 example:
                     - /etc/borgmatic/patterns
             exclude_patterns:
                 seq:
                     - type: str
                 desc: |
-                    Any paths matching these patterns are excluded from backups. Globs and tildes
-                    are expanded. See the output of "borg help patterns" for more details.
+                    Any paths matching these patterns are excluded from backups.
+                    Globs and tildes are expanded. See the output of "borg help
+                    patterns" for more details.
                 example:
                     - '*.pyc'
                     - ~/*/.cache
@@ -115,29 +129,32 @@ map:
                 seq:
                     - type: str
                 desc: |
-                    Read exclude patterns from one or more separate named files, one pattern per
-                    line. See the output of "borg help patterns" for more details.
+                    Read exclude patterns from one or more separate named files,
+                    one pattern per line. See the output of "borg help patterns"
+                    for more details.
                 example:
                     - /etc/borgmatic/excludes
             exclude_caches:
                 type: bool
                 desc: |
                     Exclude directories that contain a CACHEDIR.TAG file. See
-                    http://www.brynosaurus.com/cachedir/spec.html for details. Defaults to false.
+                    http://www.brynosaurus.com/cachedir/spec.html for details.
+                    Defaults to false.
                 example: true
             exclude_if_present:
                 seq:
                     - type: str
                 desc: |
-                    Exclude directories that contain a file with the given filenames. Defaults to not
-                    set.
+                    Exclude directories that contain a file with the given
+                    filenames. Defaults to not set.
                 example:
                     - .nobackup
             keep_exclude_tags:
                 type: bool
                 desc: |
-                    If true, the exclude_if_present filename is included in backups. Defaults to
-                    false, meaning that the exclude_if_present filename is omitted from backups.
+                    If true, the exclude_if_present filename is included in
+                    backups. Defaults to false, meaning that the
+                    exclude_if_present filename is omitted from backups.
                 example: true
             exclude_nodump:
                 type: bool
@@ -147,90 +164,103 @@ map:
             borgmatic_source_directory:
                 type: str
                 desc: |
-                    Path for additional source files used for temporary internal state like
-                    borgmatic database dumps. Note that changing this path prevents "borgmatic
-                    restore" from finding any database dumps created before the change. Defaults
-                    to ~/.borgmatic
+                    Path for additional source files used for temporary internal
+                    state like borgmatic database dumps. Note that changing this
+                    path prevents "borgmatic restore" from finding any database
+                    dumps created before the change. Defaults to ~/.borgmatic
                 example: /tmp/borgmatic
     storage:
         desc: |
             Repository storage options. See
-            https://borgbackup.readthedocs.io/en/stable/usage.html#borg-create and
-            https://borgbackup.readthedocs.io/en/stable/usage/general.html#environment-variables for
+            https://borgbackup.readthedocs.io/en/stable/usage/create.html and
+            https://borgbackup.readthedocs.io/en/stable/usage/general.html for
             details.
         map:
             encryption_passcommand:
                 type: str
                 desc: |
-                    The standard output of this command is used to unlock the encryption key. Only
-                    use on repositories that were initialized with passcommand/repokey encryption.
-                    Note that if both encryption_passcommand and encryption_passphrase are set,
-                    then encryption_passphrase takes precedence. Defaults to not set.
+                    The standard output of this command is used to unlock the
+                    encryption key. Only use on repositories that were
+                    initialized with passcommand/repokey encryption. Note that
+                    if both encryption_passcommand and encryption_passphrase are
+                    set, then encryption_passphrase takes precedence. Defaults
+                    to not set.
                 example: "secret-tool lookup borg-repository repo-name"
             encryption_passphrase:
                 type: str
                 desc: |
-                    Passphrase to unlock the encryption key with. Only use on repositories that were
-                    initialized with passphrase/repokey encryption. Quote the value if it contains
-                    punctuation, so it parses correctly. And backslash any quote or backslash
+                    Passphrase to unlock the encryption key with. Only use on
+                    repositories that were initialized with passphrase/repokey
+                    encryption. Quote the value if it contains punctuation, so
+                    it parses correctly. And backslash any quote or backslash
                     literals as well. Defaults to not set.
                 example: "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"
             checkpoint_interval:
                 type: int
                 desc: |
-                    Number of seconds between each checkpoint during a long-running backup. See
-                    https://borgbackup.readthedocs.io/en/stable/faq.html#if-a-backup-stops-mid-way-does-the-already-backed-up-data-stay-there
-                    for details. Defaults to checkpoints every 1800 seconds (30 minutes).
+                    Number of seconds between each checkpoint during a
+                    long-running backup. See
+                    https://borgbackup.readthedocs.io/en/stable/faq.html
+                    for details. Defaults to checkpoints every 1800 seconds (30
+                    minutes).
                 example: 1800
             chunker_params:
                 type: str
                 desc: |
-                    Specify the parameters passed to then chunker (CHUNK_MIN_EXP, CHUNK_MAX_EXP,
-                    HASH_MASK_BITS, HASH_WINDOW_SIZE). See https://borgbackup.readthedocs.io/en/stable/internals.html
+                    Specify the parameters passed to then chunker
+                    (CHUNK_MIN_EXP, CHUNK_MAX_EXP, HASH_MASK_BITS,
+                    HASH_WINDOW_SIZE). See
+                    https://borgbackup.readthedocs.io/en/stable/internals.html
                     for details. Defaults to "19,23,21,4095".
                 example: 19,23,21,4095
             compression:
                 type: str
                 desc: |
                     Type of compression to use when creating archives. See
-                    https://borgbackup.readthedocs.org/en/stable/usage.html#borg-create for details.
-                    Defaults to "lz4".
+                    http://borgbackup.readthedocs.io/en/stable/usage/create.html
+                    for details. Defaults to "lz4".
                 example: lz4
             remote_rate_limit:
                 type: int
-                desc: Remote network upload rate limit in kiBytes/second. Defaults to unlimited.
+                desc: |
+                    Remote network upload rate limit in kiBytes/second. Defaults
+                    to unlimited.
                 example: 100
             ssh_command:
                 type: str
                 desc: |
-                    Command to use instead of "ssh". This can be used to specify ssh options.
-                    Defaults to not set.
+                    Command to use instead of "ssh". This can be used to specify
+                    ssh options.  Defaults to not set.
                 example: ssh -i /path/to/private/key
             borg_base_directory:
                 type: str
                 desc: |
-                    Base path used for various Borg directories. Defaults to $HOME, ~$USER, or ~.
-                    See https://borgbackup.readthedocs.io/en/stable/usage/general.html#environment-variables for details.
+                    Base path used for various Borg directories. Defaults to
+                    $HOME, ~$USER, or ~.
                 example: /path/to/base
             borg_config_directory:
                 type: str
                 desc: |
-                    Path for Borg configuration files. Defaults to $borg_base_directory/.config/borg
+                    Path for Borg configuration files. Defaults to
+                    $borg_base_directory/.config/borg
                 example: /path/to/base/config
             borg_cache_directory:
                 type: str
                 desc: |
-                    Path for Borg cache files. Defaults to $borg_base_directory/.cache/borg
+                    Path for Borg cache files. Defaults to
+                    $borg_base_directory/.cache/borg
                 example: /path/to/base/cache
             borg_security_directory:
                 type: str
                 desc: |
-                    Path for Borg security and encryption nonce files. Defaults to $borg_base_directory/.config/borg/security
+                    Path for Borg security and encryption nonce files. Defaults
+                    to $borg_base_directory/.config/borg/security
                 example: /path/to/base/config/security
             borg_keys_directory:
                 type: str
                 desc: |
-                    Path for Borg encryption key files. Defaults to $borg_base_directory/.config/borg/keys
+                    Path for Borg encryption key files. Defaults to
+                    $borg_base_directory/.config/borg/keys
                 example: /path/to/base/config/keys
             umask:
                 type: scalar
@@ -238,58 +268,69 @@ map:
                 example: 0077
             lock_wait:
                 type: int
-                desc: Maximum seconds to wait for acquiring a repository/cache lock. Defaults to 1.
+                desc: |
+                    Maximum seconds to wait for acquiring a repository/cache
+                    lock. Defaults to 1.
                 example: 5
             archive_name_format:
                 type: str
                 desc: |
-                    Name of the archive. Borg placeholders can be used. See the output of
-                    "borg help placeholders" for details. Defaults to
-                    "{hostname}-{now:%Y-%m-%dT%H:%M:%S.%f}". If you specify this option, you must
-                    also specify a prefix in the retention section to avoid accidental pruning of
-                    archives with a different archive name format. And you should also specify a
+                    Name of the archive. Borg placeholders can be used. See the
+                    output of "borg help placeholders" for details. Defaults to
+                    "{hostname}-{now:%Y-%m-%dT%H:%M:%S.%f}". If you specify this
+                    option, you must also specify a prefix in the retention
+                    section to avoid accidental pruning of archives with a
+                    different archive name format. And you should also specify a
                     prefix in the consistency section as well.
                 example: "{hostname}-documents-{now}"
             relocated_repo_access_is_ok:
                 type: bool
-                desc: Bypass Borg error about a repository that has been moved. Defaults to false.
+                desc: |
+                    Bypass Borg error about a repository that has been moved.
+                    Defaults to false.
                 example: true
             unknown_unencrypted_repo_access_is_ok:
                 type: bool
                 desc: |
-                    Bypass Borg error about a previously unknown unencrypted repository. Defaults to
-                    false.
+                    Bypass Borg error about a previously unknown unencrypted
+                    repository. Defaults to false.
                 example: true
             extra_borg_options:
                 map:
                     init:
                         type: str
-                        desc: Extra command-line options to pass to "borg init".
+                        desc: |
+                            Extra command-line options to pass to "borg init".
                         example: "--make-parent-dirs"
                     prune:
                         type: str
-                        desc: Extra command-line options to pass to "borg prune".
+                        desc: |
+                            Extra command-line options to pass to "borg prune".
                         example: "--save-space"
                     create:
                         type: str
-                        desc: Extra command-line options to pass to "borg create".
+                        desc: |
+                            Extra command-line options to pass to "borg create".
                         example: "--no-files-cache"
                     check:
                         type: str
-                        desc: Extra command-line options to pass to "borg check".
+                        desc: |
+                            Extra command-line options to pass to "borg check".
                         example: "--save-space"
                 desc: |
-                    Additional options to pass directly to particular Borg commands, handy for Borg
-                    options that borgmatic does not yet support natively. Note that borgmatic does
-                    not perform any validation on these options. Running borgmatic with
-                    "--verbosity 2" shows the exact Borg command-line invocation.
+                    Additional options to pass directly to particular Borg
+                    commands, handy for Borg options that borgmatic does not yet
+                    support natively. Note that borgmatic does not perform any
+                    validation on these options. Running borgmatic with
+                    "--verbosity 2" shows the exact Borg command-line
+                    invocation.
     retention:
         desc: |
             Retention policy for how many backups to keep in each category. See
-            https://borgbackup.readthedocs.org/en/stable/usage.html#borg-prune for details.
-            At least one of the "keep" options is required for pruning to work. See
-            https://torsion.org/borgmatic/docs/how-to/deal-with-very-large-backups/
-            if you'd like to skip pruning entirely.
+            https://borgbackup.readthedocs.io/en/stable/usage/prune.html for
+            details. At least one of the "keep" options is required for pruning
+            to work. See borgmatic documentation if you'd like to skip pruning
+            entirely.
         map:
             keep_within:
                 type: str
@@ -326,27 +367,37 @@ map:
             prefix:
                 type: str
                 desc: |
-                    When pruning, only consider archive names starting with this prefix.
-                    Borg placeholders can be used. See the output of "borg help placeholders" for
-                    details. Defaults to "{hostname}-". Use an empty value to disable the default.
+                    When pruning, only consider archive names starting with this
+                    prefix.  Borg placeholders can be used. See the output of
+                    "borg help placeholders" for details. Defaults to
+                    "{hostname}-". Use an empty value to disable the default.
                 example: sourcehostname
     consistency:
         desc: |
             Consistency checks to run after backups. See
-            https://borgbackup.readthedocs.org/en/stable/usage.html#borg-check and
-            https://borgbackup.readthedocs.org/en/stable/usage.html#borg-extract for details.
+            https://borgbackup.readthedocs.io/en/stable/usage/check.html and
+            https://borgbackup.readthedocs.io/en/stable/usage/extract.html for
+            details.
         map:
             checks:
                 seq:
                     - type: str
-                      enum: ['repository', 'archives', 'data', 'extract', 'disabled']
+                      enum: [
+                          'repository',
+                          'archives',
+                          'data',
+                          'extract',
+                          'disabled'
+                      ]
                       unique: true
                 desc: |
-                    List of one or more consistency checks to run: "repository", "archives", "data",
-                    and/or "extract". Defaults to "repository" and "archives". Set to "disabled" to
-                    disable all consistency checks. "repository" checks the consistency of the
-                    repository, "archives" checks all of the archives, "data" verifies the integrity
-                    of the data within the archives, and "extract" does an extraction dry-run of the
+                    List of one or more consistency checks to run: "repository",
+                    "archives", "data", and/or "extract". Defaults to
+                    "repository" and "archives". Set to "disabled" to disable
+                    all consistency checks. "repository" checks the consistency
+                    of the repository, "archives" checks all of the archives,
+                    "data" verifies the integrity of the data within the
+                    archives, and "extract" does an extraction dry-run of the
                     most recent archive. Note that "data" implies "archives".
                 example:
                     - repository
@@ -355,24 +406,29 @@ map:
                 seq:
                     - type: str
                 desc: |
-                    Paths to a subset of the repositories in the location section on which to run
-                    consistency checks. Handy in case some of your repositories are very large, and
-                    so running consistency checks on them would take too long. Defaults to running
-                    consistency checks on all repositories configured in the location section.
+                    Paths to a subset of the repositories in the location
+                    section on which to run consistency checks. Handy in case
+                    some of your repositories are very large, and so running
+                    consistency checks on them would take too long. Defaults to
+                    running consistency checks on all repositories configured in
+                    the location section.
                 example:
                     - user@backupserver:sourcehostname.borg
             check_last:
                 type: int
-                desc: Restrict the number of checked archives to the last n. Applies only to the
-                      "archives" check. Defaults to checking all archives.
+                desc: |
+                    Restrict the number of checked archives to the last n.
+                    Applies only to the "archives" check. Defaults to checking
+                    all archives.
                 example: 3
             prefix:
                 type: str
                 desc: |
-                    When performing the "archives" check, only consider archive names starting with
-                    this prefix. Borg placeholders can be used. See the output of
-                    "borg help placeholders" for details. Defaults to "{hostname}-". Use an empty
-                    value to disable the default.
+                    When performing the "archives" check, only consider archive
+                    names starting with this prefix. Borg placeholders can be
+                    used. See the output of "borg help placeholders" for
+                    details. Defaults to "{hostname}-". Use an empty value to
+                    disable the default.
                 example: sourcehostname
     output:
         desc: |
@@ -381,72 +437,73 @@ map:
             color:
                 type: bool
                 desc: |
-                    Apply color to console output. Can be overridden with --no-color command-line
-                    flag. Defaults to true.
+                    Apply color to console output. Can be overridden with
+                    --no-color command-line flag. Defaults to true.
                 example: false
     hooks:
         desc: |
-            Shell commands, scripts, or integrations to execute at various points during a borgmatic
-            run. IMPORTANT: All provided commands and scripts are executed with user permissions of
-            borgmatic. Do not forget to set secure permissions on this configuration file (chmod
-            0600) as well as on any script called from a hook (chmod 0700) to prevent potential
-            shell injection or privilege escalation.
+            Shell commands, scripts, or integrations to execute at various
+            points during a borgmatic run. IMPORTANT: All provided commands and
+            scripts are executed with user permissions of borgmatic. Do not
+            forget to set secure permissions on this configuration file (chmod
+            0600) as well as on any script called from a hook (chmod 0700) to
+            prevent potential shell injection or privilege escalation.
         map:
             before_backup:
                 seq:
                     - type: str
                 desc: |
-                    List of one or more shell commands or scripts to execute before creating a
-                    backup, run once per configuration file.
+                    List of one or more shell commands or scripts to execute
+                    before creating a backup, run once per configuration file.
                 example:
                     - echo "Starting a backup."
             before_prune:
                 seq:
                     - type: str
                 desc: |
-                    List of one or more shell commands or scripts to execute before pruning, run
-                    once per configuration file.
+                    List of one or more shell commands or scripts to execute
+                    before pruning, run once per configuration file.
                 example:
                     - echo "Starting pruning."
             before_check:
                 seq:
                     - type: str
                 desc: |
-                    List of one or more shell commands or scripts to execute before consistency
-                    checks, run once per configuration file.
+                    List of one or more shell commands or scripts to execute
+                    before consistency checks, run once per configuration file.
                 example:
                     - echo "Starting checks."
             after_backup:
                 seq:
                     - type: str
                 desc: |
-                    List of one or more shell commands or scripts to execute after creating a
-                    backup, run once per configuration file.
+                    List of one or more shell commands or scripts to execute
+                    after creating a backup, run once per configuration file.
                 example:
                     - echo "Finished a backup."
             after_prune:
                 seq:
                     - type: str
                 desc: |
-                    List of one or more shell commands or scripts to execute after pruning, run once
-                    per configuration file.
+                    List of one or more shell commands or scripts to execute
+                    after pruning, run once per configuration file.
                 example:
                     - echo "Finished pruning."
             after_check:
                 seq:
                     - type: str
                 desc: |
-                    List of one or more shell commands or scripts to execute after consistency
-                    checks, run once per configuration file.
+                    List of one or more shell commands or scripts to execute
+                    after consistency checks, run once per configuration file.
                 example:
                     - echo "Finished checks."
             on_error:
                 seq:
                     - type: str
                 desc: |
-                    List of one or more shell commands or scripts to execute when an exception
-                    occurs during a "prune", "create", or "check" action or an associated
-                    before/after hook.
+                    List of one or more shell commands or scripts to execute
+                    when an exception occurs during a "prune", "create", or
+                    "check" action or an associated before/after hook.
                 example:
                     - echo "Error during prune/create/check."
             postgresql_databases:
@@ -456,16 +513,17 @@ map:
                             required: true
                             type: str
                             desc: |
-                                Database name (required if using this hook). Or "all" to dump all
-                                databases on the host. Note that using this database hook implicitly
-                                enables both read_special and one_file_system (see above) to support
-                                dump and restore streaming.
+                                Database name (required if using this hook). Or
+                                "all" to dump all databases on the host. Note
+                                that using this database hook implicitly enables
+                                both read_special and one_file_system (see
+                                above) to support dump and restore streaming.
                             example: users
                         hostname:
                             type: str
                             desc: |
-                                Database hostname to connect to. Defaults to connecting via local
-                                Unix socket.
+                                Database hostname to connect to. Defaults to
+                                connecting via local Unix socket.
                             example: database.example.org
                         port:
                             type: int
@@ -474,39 +532,46 @@ map:
                         username:
                             type: str
                             desc: |
-                                Username with which to connect to the database. Defaults to the
-                                username of the current user. You probably want to specify the
-                                "postgres" superuser here when the database name is "all".
+                                Username with which to connect to the database.
+                                Defaults to the username of the current user.
+                                You probably want to specify the "postgres"
+                                superuser here when the database name is "all".
                             example: dbuser
                         password:
                             type: str
                             desc: |
-                                Password with which to connect to the database. Omitting a password
-                                will only work if PostgreSQL is configured to trust the configured
-                                username without a password, or you create a ~/.pgpass file.
+                                Password with which to connect to the database.
+                                Omitting a password will only work if PostgreSQL
+                                is configured to trust the configured username
+                                without a password, or you create a ~/.pgpass
+                                file.
                             example: trustsome1
                         format:
                             type: str
                             enum: ['plain', 'custom', 'directory', 'tar']
                             desc: |
-                                Database dump output format. One of "plain", "custom", "directory",
-                                or "tar". Defaults to "custom" (unlike raw pg_dump). See
-                                https://www.postgresql.org/docs/current/app-pgdump.html for details.
-                                Note that format is ignored when the database name is "all".
+                                Database dump output format. One of "plain",
+                                "custom", "directory", or "tar". Defaults to
+                                "custom" (unlike raw pg_dump). See pg_dump
+                                documentation for details. Note that format is
+                                ignored when the database name is "all".
                             example: directory
                         options:
                             type: str
                             desc: |
-                                Additional pg_dump/pg_dumpall options to pass directly to the dump
-                                command, without performing any validation on them. See
-                                https://www.postgresql.org/docs/current/app-pgdump.html for details.
+                                Additional pg_dump/pg_dumpall options to pass
+                                directly to the dump command, without performing
+                                any validation on them. See pg_dump
+                                documentation for details.
                             example: --role=someone
                 desc: |
-                    List of one or more PostgreSQL databases to dump before creating a backup,
-                    run once per configuration file. The database dumps are added to your source
-                    directories at runtime, backed up, and then removed afterwards. Requires
+                    List of one or more PostgreSQL databases to dump before
+                    creating a backup, run once per configuration file. The
+                    database dumps are added to your source directories at
+                    runtime, backed up, and removed afterwards. Requires
                     pg_dump/pg_dumpall/pg_restore commands. See
-                    https://www.postgresql.org/docs/current/app-pgdump.html for details.
+                    https://www.postgresql.org/docs/current/app-pgdump.html for
+                    details.
             mysql_databases:
                 seq:
                     - map:
@@ -514,16 +579,17 @@ map:
                             required: true
                             type: str
                             desc: |
-                                Database name (required if using this hook). Or "all" to dump all
-                                databases on the host. Note that using this database hook implicitly
-                                enables both read_special and one_file_system (see above) to support
-                                dump and restore streaming.
+                                Database name (required if using this hook). Or
+                                "all" to dump all databases on the host. Note
+                                that using this database hook implicitly enables
+                                both read_special and one_file_system (see
+                                above) to support dump and restore streaming.
                             example: users
                         hostname:
                             type: str
                             desc: |
-                                Database hostname to connect to. Defaults to connecting via local
-                                Unix socket.
+                                Database hostname to connect to. Defaults to
+                                connecting via local Unix socket.
                             example: database.example.org
                         port:
                             type: int
@@ -532,87 +598,92 @@ map:
                         username:
                             type: str
                             desc: |
-                                Username with which to connect to the database. Defaults to the
-                                username of the current user.
+                                Username with which to connect to the database.
+                                Defaults to the username of the current user.
                             example: dbuser
                         password:
                             type: str
                             desc: |
-                                Password with which to connect to the database. Omitting a password
-                                will only work if MySQL is configured to trust the configured
-                                username without a password.
+                                Password with which to connect to the database.
+                                Omitting a password will only work if MySQL is
+                                configured to trust the configured username
+                                without a password.
                             example: trustsome1
                         options:
                             type: str
                             desc: |
-                                Additional mysqldump options to pass directly to the dump command,
-                                without performing any validation on them. See
-                                https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html or
-                                https://mariadb.com/kb/en/library/mysqldump/ for details.
+                                Additional mysqldump options to pass directly to
+                                the dump command, without performing any
+                                validation on them. See mysqldump documentation
+                                for details.
                             example: --skip-comments
                 desc: |
-                    List of one or more MySQL/MariaDB databases to dump before creating a backup,
-                    run once per configuration file. The database dumps are added to your source
-                    directories at runtime, backed up, and then removed afterwards. Requires
+                    List of one or more MySQL/MariaDB databases to dump before
+                    creating a backup, run once per configuration file. The
+                    database dumps are added to your source directories at
+                    runtime, backed up, and removed afterwards. Requires
                     mysqldump/mysql commands (from either MySQL or MariaDB). See
                     https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html or
                     https://mariadb.com/kb/en/library/mysqldump/ for details.
             healthchecks:
                 type: str
                 desc: |
-                    Healthchecks ping URL or UUID to notify when a backup begins, ends, or errors.
-                    Create an account at https://healthchecks.io if you'd like to use this service.
-                    See
-                    https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#healthchecks-hook
-                    for details.
+                    Healthchecks ping URL or UUID to notify when a backup
+                    begins, ends, or errors. Create an account at
+                    https://healthchecks.io if you'd like to use this service.
+                    See borgmatic monitoring documentation for details.
                 example:
                     https://hc-ping.com/your-uuid-here
             cronitor:
                 type: str
                 desc: |
-                    Cronitor ping URL to notify when a backup begins, ends, or errors. Create an
-                    account at https://cronitor.io if you'd like to use this service. See
-                    https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#cronitor-hook
-                    for details.
+                    Cronitor ping URL to notify when a backup begins, ends, or
+                    errors. Create an account at https://cronitor.io if you'd
+                    like to use this service. See borgmatic monitoring
+                    documentation for details.
                 example:
                     https://cronitor.link/d3x0c1
             pagerduty:
                 type: str
                 desc: |
-                    PagerDuty integration key used to notify PagerDuty when a backup errors. Create
-                    an account at https://www.pagerduty.com/ if you'd like to use this service. See
-                    https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#pagerduty-hook
-                    for details.
+                    PagerDuty integration key used to notify PagerDuty when a
+                    backup errors. Create an account at
+                    https://www.pagerduty.com/ if you'd like to use this
+                    service. See borgmatic monitoring documentation for details.
                 example:
                     a177cad45bd374409f78906a810a3074
             cronhub:
                 type: str
                 desc: |
-                    Cronhub ping URL to notify when a backup begins, ends, or errors. Create an
-                    account at https://cronhub.io if you'd like to use this service. See
-                    https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#cronhub-hook for
-                    details.
+                    Cronhub ping URL to notify when a backup begins, ends, or
+                    errors. Create an account at https://cronhub.io if you'd
+                    like to use this service. See borgmatic monitoring
+                    documentation for details.
                 example:
-                    https://cronhub.io/start/1f5e3410-254c-11e8-b61d-55875966d031
+                    https://cronhub.io/start/1f5e3410-254c-11e8-b61d-55875966d01
             before_everything:
                 seq:
                     - type: str
                 desc: |
-                    List of one or more shell commands or scripts to execute before running all
-                    actions (if one of them is "create"). These are collected from all configuration
-                    files and then run once before all of them (prior to all actions).
+                    List of one or more shell commands or scripts to execute
+                    before running all actions (if one of them is "create").
+                    These are collected from all configuration files and then
+                    run once before all of them (prior to all actions).
                 example:
                     - echo "Starting actions."
             after_everything:
                 seq:
                     - type: str
                 desc: |
-                    List of one or more shell commands or scripts to execute after running all
-                    actions (if one of them is "create"). These are collected from all configuration
-                    files and then run once before all of them (prior to all actions).
+                    List of one or more shell commands or scripts to execute
+                    after running all actions (if one of them is "create").
+                    These are collected from all configuration files and then
+                    run once before all of them (prior to all actions).
                 example:
                     - echo "Completed actions."
             umask:
                 type: scalar
-                desc: Umask used when executing hooks. Defaults to the umask that borgmatic is run with.
+                desc: |
+                    Umask used when executing hooks. Defaults to the umask that
+                    borgmatic is run with.
                 example: 0077

+ 8 - 0
tests/integration/config/test_schema.py

@@ -0,0 +1,8 @@
+MAXIMUM_LINE_LENGTH = 80
+
+
+def test_schema_line_length_stays_under_limit():
+    schema_file = open('borgmatic/config/schema.yaml')
+
+    for line in schema_file.readlines():
+        assert len(line.rstrip('\n')) <= MAXIMUM_LINE_LENGTH