def runScript(self, config, **kwargs): script = kwargs["script"] callbacks = kwargs["callbacks"] if "callbacks" in kwargs else {} variables = kwargs["variables"] if "variables" in kwargs else {} environment = kwargs["environment"] if "environment" in kwargs else {} root_folder = kwargs["rootFolder"] if "rootFolder" in kwargs else config["siteFolder"] if "environment" in config: environment = configuration.data_merge(config["environment"], environment) variables["host"] = config settings = copy.deepcopy(configuration.getSettings()) map(lambda x: settings.pop(x, None), ["hosts", "dockerHosts"]) variables["settings"] = settings callbacks["execute"] = self.executeCallback callbacks["run_task"] = self.runTaskCallback callbacks["fail_on_error"] = self.failOnErrorCallback callbacks["fail_on_missing_directory"] = self.failOnMissingDirectory replacements = self.expandVariables(variables) commands = self.expandCommands(script, replacements) # Do it again to support replacements which needs to be replaced again. commands = self.expandCommands(commands, replacements) environment = self.expandEnvironment(environment, replacements) for need in config["needs"]: environment[need.upper() + "_AVAILABLE"] = "1" return_code = self.runScriptImpl(root_folder, commands, config, callbacks, environment, replacements) if return_code: print red("Due to earlier errors quitting now.") exit(return_code)
def script(scriptKey=False, *args, **kwargs): configuration.check() scripts = configuration.current('scripts') scriptData = scripts[scriptKey] if scriptKey in scripts else False if not scriptData: scripts = configuration.getSettings('scripts') scriptData = scripts[scriptKey] if scriptKey in scripts else False if not scriptData: log.error('Could not find any script named "%s" in fabfile.yaml' % scriptKey) if configuration.current('scripts'): print 'Available scripts in %s:\n - ' % configuration.current( 'config_name') + '\n - '.join( configuration.current('scripts').keys()) if configuration.getSettings('scripts'): print 'Available scripts: \n - ' + '\n - '.join( configuration.getSettings('scripts').keys()) exit(1) if isinstance(scriptData, dict): if 'defaults' in scriptData: kwargs = configuration.data_merge(scriptData['defaults'], kwargs) scriptData = scriptData['script'] # compute arguments: arguments = ' '.join(args) for key in kwargs.keys(): arguments += ' ' + key + '="' + kwargs[key] + '"' variables = { 'arguments': kwargs, } variables['arguments']['combined'] = arguments if scriptData: methods.call('script', 'runScript', configuration.current(), script=scriptData, variables=variables)
def runScript(self, config, **kwargs): self.setRunLocally(config) script = kwargs['script'] callbacks = kwargs['callbacks'] if 'callbacks' in kwargs else {} variables = kwargs['variables'] if 'variables' in kwargs else {} environment = kwargs['environment'] if 'environment' in kwargs else {} root_folder = kwargs[ 'rootFolder'] if 'rootFolder' in kwargs else config['siteFolder'] runLocally = kwargs[ 'runLocally'] if 'runLocally' in kwargs else self.run_locally if 'environment' in config: environment = configuration.data_merge(config['environment'], environment) variables['host'] = config settings = copy.deepcopy(configuration.getSettings()) map(lambda x: settings.pop(x, None), ['hosts', 'dockerHosts']) variables['settings'] = settings callbacks['execute'] = self.executeCallback callbacks['run_task'] = self.runTaskCallback callbacks['fail_on_error'] = self.failOnErrorCallback callbacks['fail_on_missing_directory'] = self.failOnMissingDirectory replacements = self.expandVariables(variables) commands = self.expandCommands(script, replacements) # Do it again to support replacements which needs to be replaced again. commands = self.expandCommands(commands, replacements) environment = self.expandEnvironment(environment, replacements) for need in config['needs']: environment[need.upper() + '_AVAILABLE'] = "1" return_code = self.runScriptImpl(root_folder, commands, config, runLocally, callbacks, environment, replacements) if return_code: print red('Due to earlier errors quitting now.') exit(return_code)
def script(scriptKey = False, *args, **kwargs): configuration.check() scripts = configuration.current('scripts') scriptData = scripts[scriptKey] if scriptKey in scripts else False if not scriptData: scripts = configuration.getSettings('scripts') scriptData = scripts[scriptKey] if scriptKey in scripts else False if not scriptData: log.error('Could not find any script named "%s" in fabfile.yaml' % scriptKey) if configuration.current('scripts'): print 'Available scripts in %s:\n - ' % configuration.current('config_name') + '\n - '.join(configuration.current('scripts').keys()) if configuration.getSettings('scripts'): print 'Available scripts: \n - ' + '\n - '.join(configuration.getSettings('scripts').keys()) exit(1) if isinstance(scriptData, dict): if 'defaults' in scriptData: kwargs = configuration.data_merge(scriptData['defaults'], kwargs) scriptData = scriptData['script'] # compute arguments: arguments = ' '.join(args) for key in kwargs.keys(): arguments += ' ' + key + '="' + kwargs[key]+'"' variables = { 'arguments': kwargs, } variables['arguments']['combined'] = arguments if scriptData: methods.call('script', 'runScript', configuration.current(), script=scriptData, variables=variables)
def runScript(self, config, **kwargs): self.setRunLocally(config) script = kwargs['script'] callbacks = kwargs['callbacks'] if 'callbacks' in kwargs else {} variables = kwargs['variables'] if 'variables' in kwargs else {} environment = kwargs['environment'] if 'environment' in kwargs else {} root_folder = kwargs['rootFolder'] if 'rootFolder' in kwargs else config['siteFolder'] if 'siteFolder' in config else '.' runLocally = kwargs['runLocally'] if 'runLocally' in kwargs else self.run_locally if 'environment' in config: environment = configuration.data_merge(config['environment'], environment) variables['host'] = config settings = copy.deepcopy(configuration.getSettings()) map(lambda x: settings.pop(x,None), ['hosts', 'dockerHosts']) variables['settings'] = settings callbacks['execute'] = self.executeCallback callbacks['run_task'] = self.runTaskCallback callbacks['fail_on_error'] = self.failOnErrorCallback callbacks['fail_on_missing_directory'] = self.failOnMissingDirectory replacements = self.expandVariables(variables); commands = self.expandCommands(script, replacements) # Do it again to support replacements which needs to be replaced again. commands = self.expandCommands(commands, replacements) environment = self.expandEnvironment(environment, replacements) for need in config['needs']: environment[need.upper() + '_AVAILABLE'] = "1" return_code = self.runScriptImpl(root_folder, commands, config, runLocally, callbacks, environment, replacements) if return_code: log.error('Due to earlier errors quitting now.') exit(return_code)
def script(scriptKey=False, *args, **kwargs): configuration.check() scripts = configuration.current("scripts") scriptData = scripts[scriptKey] if scriptKey in scripts else False if not scriptData: scripts = configuration.getSettings("scripts") scriptData = scripts[scriptKey] if scriptKey in scripts else False if not scriptData: print red('Could not find any script named "%s" in fabfile.yaml' % scriptKey) if configuration.current("scripts"): print "Available scripts in %s:\n - " % configuration.current("config_name") + "\n - ".join( configuration.current("scripts").keys() ) if configuration.getSettings("scripts"): print "Available scripts: \n - " + "\n - ".join(configuration.getSettings("scripts").keys()) exit(1) if isinstance(scriptData, dict): if "defaults" in scriptData: kwargs = configuration.data_merge(scriptData["defaults"], kwargs) scriptData = scriptData["script"] # compute arguments: arguments = " ".join(args) for key in kwargs.keys(): arguments += " " + key + '="' + kwargs[key] + '"' variables = {"arguments": kwargs} variables["arguments"]["combined"] = arguments if scriptData: methods.call("script", "runScript", configuration.current(), script=scriptData, variables=variables)
def applyConfig(config, settings): config['slack'] = data_merge(settings['slack'], config['slack'])
def applyConfig(config, settings): config['gitOptions'] = data_merge(settings['gitOptions'], config['gitOptions']) BaseMethod.addExecutables(config, ['git'])
def applyConfig(config, settings): config['gitOptions'] = data_merge(settings['gitOptions'], config['gitOptions'])