can add rougail_variable to template
This commit is contained in:
@ -8,7 +8,7 @@ import imp
|
||||
import sys
|
||||
from shutil import copy
|
||||
import logging
|
||||
from typing import Dict
|
||||
from typing import Dict, Any
|
||||
|
||||
from subprocess import call
|
||||
from os import listdir, unlink, makedirs
|
||||
@ -116,16 +116,21 @@ class CheetahTemplate(ChtTemplate):
|
||||
eosfunc: Dict,
|
||||
config: Config,
|
||||
current_container: str,
|
||||
destfilename):
|
||||
destfilename,
|
||||
variable):
|
||||
"""Initialize Creole CheetahTemplate
|
||||
"""
|
||||
ChtTemplate.__init__(self, file=filename,
|
||||
searchList=[context, eosfunc, {'is_defined' : IsDefined(context),
|
||||
# 'creole_client' : CreoleClient(config),
|
||||
# 'current_container':CreoleGet(current_container),
|
||||
'normalize_family': normalize_family,
|
||||
'rougail_filename': destfilename
|
||||
}])
|
||||
extra_context = {'is_defined' : IsDefined(context),
|
||||
# 'creole_client' : CreoleClient(config),
|
||||
# 'current_container':CreoleGet(current_container),
|
||||
'normalize_family': normalize_family,
|
||||
'rougail_filename': destfilename
|
||||
}
|
||||
if variable:
|
||||
extra_context['rougail_variable'] = variable
|
||||
ChtTemplate.__init__(self,
|
||||
file=filename,
|
||||
searchList=[context, eosfunc, extra_context])
|
||||
|
||||
|
||||
class CreoleLeader:
|
||||
@ -324,7 +329,8 @@ class CreoleTemplateEngine:
|
||||
def process(self,
|
||||
destfilename: str,
|
||||
filevar: Dict,
|
||||
container: str):
|
||||
container: str,
|
||||
variable: Any):
|
||||
"""Process a cheetah template
|
||||
"""
|
||||
# full path of the destination file
|
||||
@ -336,7 +342,8 @@ class CreoleTemplateEngine:
|
||||
self.eosfunc,
|
||||
self.config.config.copy(),
|
||||
container,
|
||||
destfilename)
|
||||
destfilename,
|
||||
variable)
|
||||
data = str(cheetah_template)
|
||||
except CheetahNotFound as err:
|
||||
varname = err.args[0][13:-1]
|
||||
@ -393,15 +400,26 @@ class CreoleTemplateEngine:
|
||||
container_dir = join(self.dest_dir,
|
||||
container)
|
||||
filenames = filevar['name']
|
||||
if 'variable' in filevar:
|
||||
variable = filevar['variable']
|
||||
else:
|
||||
variable = None
|
||||
if not isinstance(filenames, list):
|
||||
filenames = [filenames]
|
||||
for filename in filenames:
|
||||
if variable:
|
||||
variable = [variable]
|
||||
for idx, filename in enumerate(filenames):
|
||||
destfilename = join(container_dir,
|
||||
filename[1:])
|
||||
makedirs(dirname(destfilename), exist_ok=True)
|
||||
if variable:
|
||||
var = variable[idx]
|
||||
else:
|
||||
var = None
|
||||
self.process(destfilename,
|
||||
filevar,
|
||||
container)
|
||||
container,
|
||||
var)
|
||||
self.change_properties(destfilename,
|
||||
filevar)
|
||||
|
||||
|
Reference in New Issue
Block a user