def __init__(self, local_repository, remote_repositories): listing.prepare_local_repository(local_repository) self.__local_listing = listing.load_local_listing(local_repository) self.__remote_listing = [] for repo in remote_repositories: try: self.__remote_listing.append(listing.load_remote_listing(repo)) except listing.FileNotFound as error: messages.UnableToAccessRemoteRepository(repo, error)
def publish(self, target_repository, name, version, flavor): listing.prepare_local_repository(target_repository) self.check_packers() local_listing = listing.load_local_listing(target_repository) new_entry = local_listing.add_package(name, str(version), flavor) archive_name = new_entry.get_filename() artifact = tarfile.TarFile.open(os.path.join(target_repository, archive_name), mode='w:gz') for packer in self.__packers: packer.pack_into(artifact) artifact.close() local_listing.store(target_repository)