generate_config.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from __future__ import print_function
  2. from argparse import ArgumentParser
  3. import os
  4. from subprocess import CalledProcessError
  5. import sys
  6. from borgmatic.config import convert, generate, validate
  7. DEFAULT_DESTINATION_CONFIG_FILENAME = '/etc/borgmatic/config.yaml'
  8. def parse_arguments(*arguments):
  9. '''
  10. Given command-line arguments with which this script was invoked, parse the arguments and return
  11. them as an ArgumentParser instance.
  12. '''
  13. parser = ArgumentParser(description='Generate a sample borgmatic YAML configuration file.')
  14. parser.add_argument(
  15. '-d', '--destination',
  16. dest='destination_filename',
  17. default=DEFAULT_DESTINATION_CONFIG_FILENAME,
  18. help='Destination YAML configuration filename. Default: {}'.format(DEFAULT_DESTINATION_CONFIG_FILENAME),
  19. )
  20. return parser.parse_args(arguments)
  21. def main(): # pragma: no cover
  22. try:
  23. args = parse_arguments(*sys.argv[1:])
  24. generate.generate_sample_configuration(args.destination_filename, validate.schema_filename())
  25. print('Generated a sample configuration file at {}.'.format(args.destination_filename))
  26. print()
  27. print('Please edit the file to suit your needs. The values are just representative.')
  28. print('All fields are optional except where indicated.')
  29. except (ValueError, OSError) as error:
  30. print(error, file=sys.stderr)
  31. sys.exit(1)