Source code for bun.defaults

# -*- coding: utf-8 -*-
"""
Implementation of builtin defaults for bun
"""

from __future__ import print_function
import yaml

from invoke import task

DEFAULT_CONFIG = {
    'bun': {
        'backup_dir': '/backup',         # location we backup to
        'checksum': 'sha256sum',         # checksum program to use - leave empty for no checksum generation
        'compress': 'xz -9',             # compression command to use - leave empty for no compression; also see suffix
        'default': ['homes'],            # default 'spec set(s)' to backup; see: spec dict later on
        'nice': 'nice ionice -c3',       # nice'ness to use - leave empty for no nice'ness
        'suffix': 'xz',                  # add this suffix to the generated tarball; see compress program earlier
        'start_dir': '/',                # paths to backup are relative to this dir
        'tar_opts': [                    # options to pass to tar
            '--exclude-caches',
            '--exclude-vcs',
            '--exclude-vcs-ignores',
            '--one-file-system'
            ],
        'timespec': '%Y%m%d-%H%M%S',     # alt: '%Y%m%d'
        'spec': {                        # directory sets that can be backed up
            'homes': [                   # unique token to identify the set (the reserved token 'all' means all sets)
                'home',                  # list of directories/files to backup relative to the start_dir
                'root'
                ]
        }
    },
    'run': {                             # invoke default overrides
        'echo': True
    }
}


[docs]def settings(): """Returns the unaltered default built-in configuration for bun""" return DEFAULT_CONFIG
[docs]@task(default=True) def defaults(ctx): # pylint: disable=unused-argument """ dump the default settings to the console :param ctx: :return: """ print(yaml.dump(settings(), default_flow_style=False))