def getRemoteChecksumList(url): # Download from URL data = lxtools.getRemoteData(url + '/SHASUMS.txt') # Exception or Abort if data == -1: return [] # Split Data and returns Array return data.split('\n')
def getRemoteCatalog(localcatalogonly=False): catalog = dict() bbscatalogfile = os.path.join(lxtools.getBaboonStackDirectory(), 'baboonstack.package.conf') # First, try to read local package file if not exists then if os.path.exists(bbscatalogfile): catalogdata = lxtools.loadjson(bbscatalogfile) packages = catalogdata.get('packages', {}) for pkgname in packages: catalog[pkgname] = { 'version': [packages[pkgname].get('version')], 'source': 'catalog', 'info': packages[pkgname] } if localcatalogonly: return catalog # Download Filelist data = lxtools.getRemoteData(config.lxServer + '/') # If Exception occured if data == -1: return [] # Gets the Package Name Mask for this OS packagenamemask = str( config.getConfigKey('packagemask') ).format( lxtools.getOsArchitecture() ) # Get the available packages for this OS filelist = regex.findall('">(' + packagenamemask + ')<\/a', data) filelist.sort() # Add all versions for entry in filelist: a = os.path.splitext(entry)[0].split('-') if a[0] == 'baboonstack': continue if a[0] not in catalog: catalog[a[0]] = { 'version': [], 'source': 'server' } catalog[a[0]]['version'].append(a[1][1:]) catalog[a[0]]['source'] = 'server' return catalog
def getRemoteList(url, filter=''): # Download from URL data = lxtools.getRemoteData(url) # Exception or Abort if data == -1: return [] # FIX: Changes on node.js distribution site # Find all with correct Node Version Format srvNodeList = regex.findall('">v([0-9]+\.[0-9]+\.[0-9]+)\/<\/a', data) # If filter given, then if filter != '': srvNodeList = '\n'.join(srvNodeList) srvNodeList = regex.findall('(' + filter + '.*)\n', srvNodeList) # Return List return srvNodeList
def getLatestRemoteVersion(): # Download Filelist data = lxtools.getRemoteData(config.lxServer + '/') # If Exception occured if data == -1: return '' # Get the available BaboonStack Packages for this OS packageName = str(config.getConfigKey('update', '')).format(lxtools.getOsArchitecture()) versionList = regex.findall('">(' + packageName + ')<\/a', data) versionList.sort() # If list empty? if len(versionList) == 0: return '' # Returns the LAST entry return versionList.pop()
def getRemoteChecksum(filename): # Download from URL data = lxtools.getRemoteData(config.lxServer + '/SHASUMS.txt') # Exception or Abort if data == -1: return '' # Split data in to array and find checksum for file for checksumEntry in data.split('\n'): value = checksumEntry.split(' ') if len(value) != 2: continue if value[1] == filename: return value[0] # No checksum for this file, return empty string return ''