def software_options(self): # software build options descr = ("Software search and build options", ( "Specify software search and build options: EasyBuild will search for a " "matching easyconfig and build it. When called with the try prefix " "(i.e. --try-X ), EasyBuild will search for a matching easyconfig " "and if none are found, try to generate one based on a close matching one " "(NOTE: --try-X is best effort, it might produce wrong builds!)")) opts = OrderedDict({ 'amend': (("Specify additional search and build parameters (can be used multiple times); " "for example: versionprefix=foo or patches=one.patch,two.patch)" ), None, 'append', None, { 'metavar': 'VAR=VALUE[,VALUE]' }), 'software-name': ("Search and build software with name", None, 'store', None, { 'metavar': 'NAME' }), 'software-version': ("Search and build software with version", None, 'store', None, { 'metavar': 'VERSION' }), 'toolchain': ("Search and build with toolchain (name and version)", None, 'extend', None, { 'metavar': 'NAME,VERSION' }), 'toolchain-name': ("Search and build with toolchain name", None, 'store', None, { 'metavar': 'NAME' }), 'toolchain-version': ("Search and build with toolchain version", None, 'store', None, { 'metavar': 'VERSION' }), }) longopts = opts.keys() for longopt in longopts: hlp = opts[longopt][0] hlp = "Try to %s (USE WITH CARE!)" % (hlp[0].lower() + hlp[1:]) opts["try-%s" % longopt] = (hlp, ) + opts[longopt][1:] # additional options that don't need a --try equivalent opts.update({ 'from-pr': ("Obtain easyconfigs from specified PR", int, 'store', None, { 'metavar': 'PR#' }), }) self.log.debug("software_options: descr %s opts %s" % (descr, opts)) self.add_group_parser(opts, descr)
def software_options(self): # software build options descr = ("Software search and build options", ("Specify software search and build options: EasyBuild will search for a " "matching easyconfig and build it. When called with the try prefix " "(i.e. --try-X ), EasyBuild will search for a matching easyconfig " "and if none are found, try to generate one based on a close matching one " "(NOTE: --try-X is best effort, it might produce wrong builds!)") ) opts = OrderedDict({ 'amend': (("Specify additional search and build parameters (can be used multiple times); " "for example: versionprefix=foo or patches=one.patch,two.patch)"), None, 'append', None, {'metavar': 'VAR=VALUE[,VALUE]'}), 'software': ("Search and build software with given name and version", None, 'extend', None, {'metavar': 'NAME,VERSION'}), 'software-name': ("Search and build software with given name", None, 'store', None, {'metavar': 'NAME'}), 'software-version': ("Search and build software with given version", None, 'store', None, {'metavar': 'VERSION'}), 'toolchain': ("Search and build with given toolchain (name and version)", None, 'extend', None, {'metavar': 'NAME,VERSION'}), 'toolchain-name': ("Search and build with given toolchain name", None, 'store', None, {'metavar': 'NAME'}), 'toolchain-version': ("Search and build with given toolchain version", None, 'store', None, {'metavar': 'VERSION'}), }) longopts = opts.keys() for longopt in longopts: hlp = opts[longopt][0] hlp = "Try to %s (USE WITH CARE!)" % (hlp[0].lower() + hlp[1:]) opts["try-%s" % longopt] = (hlp,) + opts[longopt][1:] # additional options that don't need a --try equivalent opts.update({ 'from-pr': ("Obtain easyconfigs from specified PR", int, 'store', None, {'metavar': 'PR#'}), }) self.log.debug("software_options: descr %s opts %s" % (descr, opts)) self.add_group_parser(opts, descr)
def get_build_stats(app, start_time, command_line): """ Return build statistics for this build """ time_now = time.time() build_time = round(time_now - start_time, 2) buildstats = OrderedDict([ ('easybuild-framework_version', str(FRAMEWORK_VERSION)), ('easybuild-easyblocks_version', str(EASYBLOCKS_VERSION)), ('timestamp', int(time_now)), ('build_time', build_time), ('install_size', app.det_installsize()), ('command_line', command_line), ('modules_tool', app.modules_tool.buildstats()), ]) for key, val in sorted(get_system_info().items()): buildstats.update({key: val}) return buildstats