aboutsummaryrefslogtreecommitdiff
path: root/ipsutils
diff options
context:
space:
mode:
Diffstat (limited to 'ipsutils')
-rw-r--r--ipsutils/config.py3
-rw-r--r--ipsutils/tasks.py15
2 files changed, 17 insertions, 1 deletions
diff --git a/ipsutils/config.py b/ipsutils/config.py
index eed142c..b2ad4a8 100644
--- a/ipsutils/config.py
+++ b/ipsutils/config.py
@@ -42,6 +42,7 @@ class Config(object):
#Define valid build script sections in SPEC file
script_dict = collections.OrderedDict()
+ script_dict['globals'] = []
script_dict['prep'] = []
script_dict['build'] = []
script_dict['install'] = []
@@ -81,7 +82,7 @@ class Config(object):
#Parse user defined scripts by section and store them in script_dict
found_data = False
- code_section = ['%build', '%prep', '%install', '%transforms']
+ code_section = ['%globals', '%prep', '%build', '%install', '%transforms']
for section in code_section:
for line in ipsfile_output:
diff --git a/ipsutils/tasks.py b/ipsutils/tasks.py
index c7c0fc6..ec69814 100644
--- a/ipsutils/tasks.py
+++ b/ipsutils/tasks.py
@@ -340,6 +340,21 @@ class Script(task.Task):
fp_tempfile = tempfile.NamedTemporaryFile('w+', prefix='ipsutils_', suffix='.sh', delete=True)
os.chdir(self.cls.env_pkg['BUILD'])
fp_tempfile.write(shebang)
+
+ if(self.cls.script_dict['globals']):
+ for line in self.cls.script_dict['globals']:
+ if not line:
+ continue
+ # Variable expansion occurs here. Unfortunately, env_pkg is NOT available
+ # from within the configuration class
+ t = string.Template(string.join(line))
+ line = t.safe_substitute(self.cls.env_pkg)
+ fp_tempfile.writelines(line)
+ fp_tempfile.writelines('\n')
+ if self.cls.options.verbose:
+ print(">>> {0:s}".format(line))
+ fp_tempfile.flush()
+
for line in self.script:
if not line:
continue