Exemple #1
0
    def get(cls, release_type, release_version):
        files = None
        if release_type != None:
            if release_version != None:
                release_info_dict = releases.getInfo(release_type, release_version)
                release_plist_name = utilities.createcachefilename(release_info_dict['prefix'], release_info_dict['version'])
                cached_file_path = utilities.getcachefile(release_plist_name)

                if os.path.exists(cached_file_path) == True:
                    return cached_file_path

            else:
                files = []
                type_versions = versions.get(release_type)
                for version in type_versions:
                    release_version_info = releases.getInfo(release_type, version)
                    path = cls.get(release_type, release_version_info['name'])
                    if path != None:
                        files.append(path)
        else:
            files = {}
            types = releases.get()
            for type_name in types:
                packages = cls.get(type_name, None)
                if len(packages) > 0:
                    files[type_name] = packages
        return files
Exemple #2
0
 def rebuild(cls):
     config.toggleFirstRun()
     package_cache = {}
     total_manifests = 0
     for rtype in releases.get():
         version = versions.get(rtype)
         total_manifests += len(version)
     available_package_manifests = cls.get(None, None)
     manifests_on_disk = 0
     for release_type in available_package_manifests:
         manifests_on_disk += len(available_package_manifests[release_type])
     if manifests_on_disk != total_manifests:
         logging_helper.getLogger().warn('You are rebuilding the cache without having all the release manifest files downloaded. To be able to access all information you should run "cache download_all" before running "cache rebuild" again.')
     for release_type in available_package_manifests:
         release_packages = {}
         for manifest_path in available_package_manifests[release_type]:
             manifest = plistlib.readPlist(manifest_path)
             for package_name in manifest['projects']:
                 package_name = str(package_name)
                 version_number = str(manifest['projects'][package_name]['version'])
                 if package_name in release_packages.keys():
                     if version_number not in release_packages[package_name]:
                         release_packages[package_name].append(version_number)
                 else:
                     release_packages[package_name] = [version_number]
         package_cache[str(release_type)] = release_packages
     package_cache_path = utilities.getcachefile('package_cache.plist')
     plistlib.writePlist(package_cache, package_cache_path)
Exemple #3
0
    def fetch(cls, release_type, release_version):
        if release_type != None:
            if release_version != None:
                release_info_dict = releases.getInfo(release_type, release_version)
                release_plist_name = utilities.createcachefilename(release_info_dict['prefix'], release_info_dict['version'])
                cached_file_path = utilities.getcachefile(release_plist_name)

                if os.path.exists(cached_file_path) == False:
                    logging_helper.getLogger().info('Downloading version manifest ('+release_plist_name+')...')
                    manager.DownloadPackageManifest(cached_file_path)
            else:
                type_versions = versions.get(release_type)
                for version in type_versions:
                    release_version_info = releases.getInfo(release_type, version)
                    cls.fetch(release_type, release_version_info['name'])
        else:
            types = releases.get()
            for type_name in types:
                cls.fetch(type_name, None)
Exemple #4
0
    def flush(cls, release_type, release_version):
        if release_type == None and release_version == None:
            settings = config.read()
            settings['first_run'] = True
            config.write(settings)
        if release_type != None:
            if release_version != None:
                release_info_dict = releases.getInfo(release_type, release_version)
                release_plist_name = utilities.createcachefilename(release_info_dict['prefix'], release_info_dict['version'])
                cached_file_path = utilities.getcachefile(release_plist_name)

                if os.path.exists(cached_file_path) == True:
                    logging_helper.getLogger().info('Removing version manifest ('+release_plist_name+')...')
                    manager.RemovePackageManifest(cached_file_path)
            else:
                type_versions = versions.get(release_type)
                for version in type_versions:
                    release_version_info = releases.getInfo(release_type, version)
                    cls.flush(release_type, release_version_info['name'])
        else:
            types = releases.get()
            for type_name in types:
                cls.flush(type_name, None)