diff options
Diffstat (limited to 'baserockimport/exts/python.to_lorry')
-rwxr-xr-x | baserockimport/exts/python.to_lorry | 51 |
1 files changed, 7 insertions, 44 deletions
diff --git a/baserockimport/exts/python.to_lorry b/baserockimport/exts/python.to_lorry index 8ee20eb..2c57a9b 100755 --- a/baserockimport/exts/python.to_lorry +++ b/baserockimport/exts/python.to_lorry @@ -33,6 +33,8 @@ import yaml import pkg_resources from importer_python_common import * +from utils import warn, error +import utils def fetch_package_metadata(package_name): try: @@ -96,35 +98,6 @@ def find_repo_type(url): return None -def get_compression(url): - bzip = 'bzip2' - gzip = 'gzip' - lzma = 'lzma' - - m = {'tar.gz': gzip, 'tgz': gzip, 'tar.Z': gzip, - 'tar.bz2': bzip, 'tbz2': bzip, - 'tar.lzma': lzma, 'tar.xz': lzma, 'tlz': lzma, 'txz': lzma} - - for x in [1, 2]: - ext = '.'.join(url.split('.')[-x:]) - if ext in m: return m[ext] - - return None - -# Assumption: url passed to this function must have a 'standard' tar extension -def make_tarball_lorry(lorry_prefix, package_name, url): - name = '%s/%s' % (lorry_prefix, package_name) - - # TODO: shouldn't have 'x-products-python' field hardcoded here either - lorry = {'type': 'tarball', - 'url': url, - 'x-products-python': [package_name]} - compression = get_compression(url) - if compression: - lorry['compression'] = compression - - return json.dumps({name + "-tarball": lorry}, indent=4, sort_keys=True) - def filter_urls(urls): allowed_extensions = ['tar.gz', 'tgz', 'tar.Z', 'tar.bz2', 'tbz2', 'tar.lzma', 'tar.xz', 'tlz', 'txz', 'tar'] @@ -181,20 +154,9 @@ def generate_tarball_lorry(lorry_prefix, client, package_name, version=None): url = urls[0]['url'] - return make_tarball_lorry(lorry_prefix, package_name, url) - -def str_repo_lorry(lorry_prefix, package_name, repo_type, url): - name = '%s/%s' % (lorry_prefix, package_name) - - # TODO: this products field 'x-products-python' - # probably shouldn't be hardcoded here - - lorry = {'type': repo_type, 'url': url, 'x-products-python': [package_name]} - - if repo_type == 'svn': - lorry['layout'] = 'standard' + # TODO: shouldn't be hardcoding ext name here + return utils.str_tarball_lorry('python', lorry_prefix, package_name, url) - return json.dumps({name: lorry}, indent=4, sort_keys=True) class PythonLorryExtension(ImportExtension): @@ -232,8 +194,9 @@ class PythonLorryExtension(ImportExtension): if 'home_page' in info else None) if repo_type: - print(str_repo_lorry(lorry_prefix, package_name, - repo_type, info['home_page'])) + # TODO: Don't hardcode extname here. + print(utils.str_repo_lorry('python', lorry_prefix, package_name, + repo_type, info['home_page'])) else: print(generate_tarball_lorry(lorry_prefix, client, package_name, version)) |