allow custom validation of args
This commit is contained in:
parent
fd8ec93851
commit
1790e0723c
@ -9,6 +9,15 @@ import sys
|
||||
import shutil
|
||||
|
||||
|
||||
def module_exists(module_name):
|
||||
try:
|
||||
__import__(module_name)
|
||||
except ImportError:
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
|
||||
def check_cmake_exists(cmake_command):
|
||||
"""
|
||||
Check whether CMake is installed. If not, print
|
||||
|
27
update.py
27
update.py
@ -138,9 +138,11 @@ def gen_setup(config, relative_path, setup_script_name):
|
||||
s.append('\nimport os')
|
||||
s.append('import sys')
|
||||
|
||||
s.append("\nsys.path.append('%s')" % os.path.join(relative_path, 'lib', 'docopt'))
|
||||
s.append("\nsys.path.append('%s')" % os.path.join(relative_path, 'lib'))
|
||||
s.append('from config import configure')
|
||||
s.append("\nsys.path.append('%s')" % relative_path)
|
||||
s.append("sys.path.append('%s')" % os.path.join(relative_path, 'lib'))
|
||||
s.append("sys.path.append('%s')" % os.path.join(relative_path, 'lib', 'docopt'))
|
||||
|
||||
s.append('import config')
|
||||
s.append('import docopt')
|
||||
|
||||
s.append('\n\noptions = """')
|
||||
@ -171,16 +173,29 @@ def gen_setup(config, relative_path, setup_script_name):
|
||||
|
||||
s.append(gen_cmake_command(config))
|
||||
|
||||
s.append("\n\ntry:")
|
||||
s.append("\n")
|
||||
s.append("# parse command line args")
|
||||
s.append("try:")
|
||||
s.append(" arguments = docopt.docopt(options, argv=None)")
|
||||
s.append("except docopt.DocoptExit:")
|
||||
s.append(r" sys.stderr.write('ERROR: bad input to %s\n' % sys.argv[0])")
|
||||
s.append(" sys.stderr.write(options)")
|
||||
s.append(" sys.exit(-1)")
|
||||
s.append("\nroot_directory = os.path.dirname(os.path.realpath(__file__))")
|
||||
s.append("\n")
|
||||
s.append("# we run the arguments through the validate function if it exists")
|
||||
s.append("if config.module_exists('validate'):")
|
||||
s.append(" import validate")
|
||||
s.append(" arguments = validate.validate(sys.argv, arguments)")
|
||||
s.append("\n")
|
||||
s.append("root_directory = os.path.dirname(os.path.realpath(__file__))")
|
||||
s.append("\n")
|
||||
s.append("build_path = arguments['<builddir>']")
|
||||
s.append("\n")
|
||||
s.append("# create cmake command")
|
||||
s.append("cmake_command = '%s %s' % (gen_cmake_command(options, arguments), root_directory)")
|
||||
s.append("configure(root_directory, build_path, cmake_command, arguments['--show'])")
|
||||
s.append("\n")
|
||||
s.append("# run cmake")
|
||||
s.append("config.configure(root_directory, build_path, cmake_command, arguments['--show'])")
|
||||
|
||||
return s
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user