generate_config.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. from argparse import ArgumentParser
  2. import sys
  3. from borgmatic.config import generate, validate
  4. DEFAULT_DESTINATION_CONFIG_FILENAME = '/etc/borgmatic/config.yaml'
  5. def parse_arguments(*arguments):
  6. '''
  7. Given command-line arguments with which this script was invoked, parse the arguments and return
  8. them as an ArgumentParser instance.
  9. '''
  10. parser = ArgumentParser(description='Generate a sample borgmatic YAML configuration file.')
  11. parser.add_argument(
  12. '-d',
  13. '--destination',
  14. dest='destination_filename',
  15. default=DEFAULT_DESTINATION_CONFIG_FILENAME,
  16. help='Destination YAML configuration filename. Default: {}'.format(
  17. DEFAULT_DESTINATION_CONFIG_FILENAME
  18. ),
  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(
  25. args.destination_filename, validate.schema_filename()
  26. )
  27. print('Generated a sample configuration file at {}.'.format(args.destination_filename))
  28. print()
  29. print('Please edit the file to suit your needs. The values are just representative.')
  30. print('All fields are optional except where indicated.')
  31. print()
  32. print('If you ever need help: https://torsion.org/borgmatic/#issues')
  33. except (ValueError, OSError) as error:
  34. print(error, file=sys.stderr)
  35. sys.exit(1)