Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

59 linhas
2.1 KiB

  1. #! /usr/bin/python3
  2. import argparse
  3. from calculate.templates.template_processor import DirectoryProcessor
  4. from calculate.variables.loader import Datavars
  5. from calculate.utils.io_module import IOModule
  6. from calculate.utils.package import NonePackage
  7. from calculate.utils.tools import flat_iterable
  8. def main():
  9. parser = argparse.ArgumentParser('Run templates.')
  10. parser.add_argument('-a', '--action', action='append', type=str, nargs='+',
  11. help="action parameter value.")
  12. parser.add_argument('-i', '--install', type=str,
  13. help="atom name of a target package.")
  14. parser.add_argument('--dbpkg', action='store_true',
  15. help=("flag for switching template engine's mode from"
  16. " standard mode to the mode allowing changing of"
  17. "CONTENTS files."))
  18. parser.add_argument('-b', '--build', type=str,
  19. help="atom name of a build package.")
  20. parser.add_argument('-u', '--uninstall', type=str,
  21. help="atom name of a uninstalling package.")
  22. args = parser.parse_args()
  23. datavars = Datavars()
  24. io_module = IOModule()
  25. if args.install is None:
  26. install = NonePackage
  27. elif args.install.strip().casefold() == 'all':
  28. install = None
  29. else:
  30. install = args.install
  31. group_packages = {}
  32. if args.build is not None:
  33. group_packages['build'] = args.build
  34. if args.uninstall is not None:
  35. group_packages['uninstall'] = args.uninstall
  36. action = list(flat_iterable(args.action))
  37. template_processor = DirectoryProcessor(action,
  38. datavars_module=datavars,
  39. install=install,
  40. output_module=io_module,
  41. dbpkg=args.dbpkg,
  42. **group_packages)
  43. template_processor.process_template_directories()
  44. datavars.save_variables()
  45. if __name__ == "__main__":
  46. main()