summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkennyballou <kballou@onyx.boisestate.edu>2013-03-18 12:48:51 -0600
committerkennyballou <kballou@onyx.boisestate.edu>2013-03-18 12:48:51 -0600
commit8ce8cccae38bcd687f4adc552ae69d1f042ca574 (patch)
tree92fdee899bab6dd77ad4beb98f9d05fb4095dcea
parent746d430c10778854fe26216c60ef1ffe85c35563 (diff)
downloadxnt-8ce8cccae38bcd687f4adc552ae69d1f042ca574.tar.gz
xnt-8ce8cccae38bcd687f4adc552ae69d1f042ca574.tar.xz
Add parameter passing to `xnt.build.make` module
-rw-r--r--xnt/build/make.py41
1 files changed, 35 insertions, 6 deletions
diff --git a/xnt/build/make.py b/xnt/build/make.py
index 0a94f2b..30d96f1 100644
--- a/xnt/build/make.py
+++ b/xnt/build/make.py
@@ -20,19 +20,29 @@
import os
import subprocess
-def ant(path="", target="", flags=None):
+def ant(path="", target="", flags=None, pkeys=None, pvalues=None):
"""Wrapper around Apache Ant"""
- cmd = __add_flags(["ant", target], flags)
+ cmd = __add_params(["ant"],
+ __build_param_list(pkeys, pvalues),
+ lambda x: "-D%s" % x)
+ cmd = __add_flags(cmd, flags)
+ cmd.append(target)
return __run_in(path, lambda: subprocess.call(cmd))
-def make(path="", target="", flags=None):
+def make(path="", target="", flags=None, pkeys=None, pvalues=None):
"""Wrapper around GNU Make"""
- cmd = __add_flags(["make", target], flags)
+ cmd = __add_params(["make"], __build_param_list(pkeys, pvalues))
+ cmd = __add_flags(cmd, flags)
+ cmd.append(target)
return __run_in(path, lambda: subprocess.call(cmd))
-def nant(path="", target="", flags=None):
+def nant(path="", target="", flags=None, pkeys=None, pvalues=None):
"""Wrapper around .NET Ant"""
- cmd = __add_flags(["nant", target], flags)
+ cmd = __add_params(["nant"],
+ __build_param_list(pkeys, pvalues),
+ lambda x: "-D:%s" % x)
+ cmd = __add_flags(cmd, flags)
+ cmd.append(target)
return __run_in(path, lambda: subprocess.call(cmd))
def __add_flags(cmd, flags):
@@ -42,6 +52,25 @@ def __add_flags(cmd, flags):
command.append(flag)
return command
+def __build_param_list(keys, values):
+ """Build a list of key-value for appending to the command list"""
+ parameters = []
+ if not keys or not values:
+ return parameters
+ params = zip(keys, values)
+ for param in params:
+ parameters.append("%s=%s" % param)
+ return parameters
+
+def __add_params(cmd, params, param_map=lambda x: x):
+ """Append parameters to cmd list using fn"""
+ if not params:
+ return cmd
+ command = list(cmd)
+ for param in params:
+ command.append(param_map(param))
+ return command
+
def __run_in(path, function):
"""Execute function while in a different running directory"""
cwd = os.path.abspath(os.getcwd())