summaryrefslogtreecommitdiff
path: root/baserockimport/exts/python.to_lorry
diff options
context:
space:
mode:
Diffstat (limited to 'baserockimport/exts/python.to_lorry')
-rwxr-xr-xbaserockimport/exts/python.to_lorry51
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))