def grab(args): valid_switches = ['-c'] curl_links = {} zips = {} # check we have args if len(args['args']) < 1: error_object = [] error_object.append('No resource specified') raise yoda_kill(error_object) else: # check resources check_resources(args['args']) # get the curl links for resource in args['args']: curl_links[resource] = resources.return_resource(resource) # get name of each zip for key, value in curl_links.iteritems(): zips[key] = os.path.basename(value) # check if a switch was passed if args['switch']: # check if switch is valid if args['switch'] in valid_switches: print 'running code with switch: ' + args['switch'] curl_resource(curl_links) yoda_unzip(zips) run_config(args['args']) else: # invalid switch given error_object = [] error_object.append('Invalid switch specifed: ' + args['switch']) raise yoda_kill(error_object) # no switch passed else: print 'running without switch' curl_resource(curl_links) yoda_unzip(zips)
def run_config(args): config_script = configs.return_config(args) if config_script != False: #build path to configs path = os.path.dirname(os.path.realpath(__file__)) path += '/configs/' path += config_script config_exec = subprocess.Popen(['python', path]) config_exec.wait() else: error_object = [] error_object.append('invalid config:') error_object.append(args) raise yoda_kill(error_object)
def init(): # format args env = { 'args' : [], 'cmd' : False, 'switch' : False} sys.argv.pop(0) # we dont need path if len(sys.argv) < 1: error_object = [] error_object.append('No arguments provided. See yoda help for cmd format') raise yoda_kill(error_object) # check if cmd is valid if sys.argv[0] in valid_commands: env['cmd'] = sys.argv[0] # check if we have a switch if len(sys.argv) > 1: if re.match('^-', sys.argv[1]): env['switch'] = sys.argv[1] # store remaning args if present and return env if len(sys.argv) > 2: for i in range(2, len(sys.argv)): env['args'].append(sys.argv[i]) return env else: return env else: # no switch present for i in range(1, len(sys.argv)): env['args'].append(sys.argv[i]) return env else: # no switch or args to cmd return env else: error_object = [] error_object.append('Invalid command specified: ' + sys.argv[0]) error_object.append('Valid commands are: ') error_object.append(valid_commands) raise yoda_kill(error_object)
def check_resources(args): invalid_resources = [] valid_resources = 0 for resource in args: valid_resource = resources.return_resource(resource) if valid_resource: valid_resources += 1 else: invalid_resources.append(resource) if valid_resources != len(args): error_object = [] error_object.append('Invalid resources specified:') error_object.append(invalid_resources) error_object.append('Please see yoda resources for available resources') raise yoda_kill(error_object) else: # we have valid resources return True
if os.path.exists(bootstrap_css) and os.path.exists(cakephp_css): print 'moving twitter bootstrap css assets to cake css folder' dir_contents = os.listdir(bootstrap_css) for file in dir_contents: shutil.move(bootstrap_css + file, cakephp_css) print 'css assets moved' successfully_moved += 1 else: error_object = [] error.object.append('Unable to move bootstrap css assets due to missing path') error.object.append('Verify the following paths exist in yodapaths.py: ') error_object.append(bootstrap_css) error_object.append(cakephp_css) raise yoda_kill(error_object) if os.path.exists(bootstrap_js) and os.path.exists(cakephp_js): print 'moving twitter bootstrap javascript assets to cake js folder' dir_contents = os.listdir(bootstrap_js) for file in dir_contents: shutil.move(bootstrap_js + file, cakephp_js) print 'javascript assets moved' successfully_moved += 1 else: error_object = [] error.object.append('Unable to move bootstrap js assets due to missing path') error.object.append('Verify the following paths exist in yodapaths.py: ') error_object.append(bootstrap_js) error_object.append(cakephp_js) raise yoda_kill(error_object)