You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
calculate-utils-4-lib/run_templates.py

59 rivejä
2.1 KiB

#! /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()