58 lines
2.1 KiB
Python
58 lines
2.1 KiB
Python
#! /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()
|