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