#! /usr/bin/python3 import argparse from calculate.templates.template_processor import DirectoryProcessor from calculate.variables.loader import Datavars from calculate.utils.io_module import IOModule from calculate.utils.package import NonePackage from calculate.utils.tools import flat_iterable def main(): parser = argparse.ArgumentParser('Run templates.') parser.add_argument('-a', '--action', action='append', type=str, nargs='+', help="action parameter value.") parser.add_argument('-i', '--install', type=str, help="atom name of a target package.") parser.add_argument('--dbpkg', action='store_true', help=("flag for switching template engine's mode from" " standard mode to the mode allowing changing of" "CONTENTS files.")) parser.add_argument('-b', '--build', type=str, help="atom name of a build package.") parser.add_argument('-u', '--uninstall', type=str, help="atom name of a uninstalling package.") args = parser.parse_args() datavars = Datavars() io_module = IOModule() if args.install is None: install = NonePackage elif args.install.strip().casefold() == 'all': install = None else: install = args.install group_packages = {} if args.build is not None: group_packages['build'] = args.build if args.uninstall is not None: group_packages['uninstall'] = args.uninstall action = list(flat_iterable(args.action)) template_processor = DirectoryProcessor(action, datavars_module=datavars, install=install, output_module=io_module, dbpkg=args.dbpkg, **group_packages) template_processor.process_template_directories() datavars.save_variables() if __name__ == "__main__": main()