def test_apkpath(testpath): try: if fs.isfile(testpath) and testpath.endswith('.apk'): return True elif fs.isdir(testpath): for item in fs.ls(testpath): if fs.isfile(fs.join(testpath,item)) and item.endswith('.apk'): return True print('Specified directory has no apk files in it') return False except Exception as e: print('{0} does not exist'.format(testpath)) return False
def get_incomplete_executions(execomponents): returnlist = [] for n, execomponent in enumerate(execomponents): if fs.isfile(execomponent.resultdir, s.runconf): if not is_complete_execution(execomponent): returnlist.append(execomponent) return returnlist
def get_finished_apknames(execomponent): if not fs.isfile(execomponent.resultdir, 'results.csv'): return [] returnlist = [] with open(fs.join(execomponent.resultdir, 'results.csv')) as csv: for line in csv: returnlist.append(line.split(',', 2)[1]) return returnlist
def get_finished_apknames(result_csv): returnlist = [] if not fs.isfile(result_csv): return [] with open(result_csv) as csv: for line in csv: returnlist.append(line.split(',', 2)[1]) return returnlist
def __init__(self, config): try: if not fs.isfile(config): return except Exception as e: return dictionary = self.reader(config) self.deps = dictionary[Phase.DEPS] self.pkgs = dictionary[Phase.PKGS]
def get_execution_components(components): execomponents = [] if fs.isdir(s.resultsdir): for item in fs.lsonlydir(s.resultsdir, full_paths=True): if fs.isfile(item, s.runconf): execomponents.append( comp.ExecutionComponent(components, fs.join(item, s.runconf))) return execomponents
def get_available_RAM(self): if not fs.isfile('/proc/meminfo'): raise ValueError('could not find /proc/meminfo') with open('/proc/meminfo') as f: for line in f: if 'MemAvailable' in line: line = line[:-1] memavailable = line.split(' ')[-2] memtype = line.split(' ')[-1] return self.get_GB(int(memavailable), memtype) raise RuntimeError('could not find memAvailable in /proc/meminfo')
def get_components(): components = [] installers = get_installer_dirs() for item in installers: if not fs.isfile(s.installersdir,item,'install.py'): print('Error in "{0}": No install.py found!'.format(item)) continue elif not fs.isfile(s.installersdir,item,'run.py'): print('Error in "{0}": No run.py found!'.format(item)) continue elif not fs.isfile(s.installersdir,item,'analyse.py'): print('Error in "{0}": No analyse.py found!'.format(item)) continue installmod = 'installers.{0}.install'.format(item) runmod = 'installers.{0}.run'.format(item) analysemod = 'installers.{0}.analyse'.format(item) installerloc = fs.join(s.installersdir,item) installloc = fs.join(s.installdir,item) component = cmpnt.Component(installmod, runmod, analysemod, installerloc, installloc) components.append(component) components.sort() return components
def ask_path(question, must_exist=True): while True: print(question) print('Paths may be absolute or relative to your working directory') print('Working directory: {0}'.format(fs.cwd())) print('Please specify a path:') choice = input('') choice = fs.abspath(choice) if not fs.isdir(fs.dirname(choice)): print('Error: no such directory - "{0}"'.format( fs.dirname(choice))) elif must_exist: if fs.exists(choice): return choice else: print('"{0}" does not exist'.format(choice)) else: if fs.isfile(choice): if standard_yesno('"{0}" exists, override?'.format(choice)): return choice elif fs.isdir(choice): print('"{0}" is a directory'.format(choice)) print('')
def check_can_analyse(self): return fs.isfile(s.installersdir,str(self.methodcomponent),'analyse.py')