summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Ipsum <richard.ipsum@codethink.co.uk>2014-10-09 17:41:58 +0100
committerRichard Ipsum <richard.ipsum@codethink.co.uk>2014-11-04 12:40:55 +0000
commitb6994c43b4e5cc352682e1019c5c80b77b8195f6 (patch)
tree50546f6d6ab986afce2e7db8dc41781c065f4a8e
parenteea21f997745f170aa0e66f8109fa0784165ec71 (diff)
downloadimport-b6994c43b4e5cc352682e1019c5c80b77b8195f6.tar.gz
Add warn() and error() and use those
-rwxr-xr-ximport/pip.to_lorry34
1 files changed, 16 insertions, 18 deletions
diff --git a/import/pip.to_lorry b/import/pip.to_lorry
index e10fc29..dcc1c55 100755
--- a/import/pip.to_lorry
+++ b/import/pip.to_lorry
@@ -29,12 +29,18 @@ import xmlrpclib
PYPI_URL = 'http://pypi.python.org/pypi'
+def warn(*args, **kwargs):
+ print('%s:' % sys.argv[0], *args, file=sys.stderr, **kwargs)
+
+def error(*args, **kwargs):
+ warn(*args, **kwargs)
+ sys.exit(1)
+
def fetch_package_metadata(package_name):
try:
return requests.get('%s/%s/json' % (PYPI_URL, package_name)).json()
except Exception as e:
- print("Couldn't fetch package metadata: ", e, file=sys.stderr)
- sys.exit(1)
+ error("Couldn't fetch package metadata: ", e)
def find_repo_type(url):
vcss = [('git', 'clone'), ('hg', 'clone'),
@@ -109,12 +115,10 @@ def generate_tarball_lorry(package_name):
client = xmlrpclib.ServerProxy(PYPI_URL)
releases = client.package_releases(package_name)
except Exception as e:
- print("Couldn't fetch release data:", e, file=sys.stderr)
- sys.exit(1)
+ error("Couldn't fetch release data:", e)
if len(releases) == 0:
- print("Couldn't find any releases for package %s" % package_name)
- sys.exit(1)
+ error("Couldn't find any releases for package %s" % package_name)
def get_description(release):
return client.release_data(package_name,
@@ -131,22 +135,19 @@ def generate_tarball_lorry(package_name):
try:
urls = client.release_urls(package_name, release_version)
except Exception as e:
- print("Couldn't fetch release urls:", e, file=sys.stderr)
- sys.exit(1)
+ error("Couldn't fetch release urls:", e)
tarball_urls = filter_urls(urls)
if len(tarball_urls) > 0:
urls = tarball_urls
elif len(urls) > 0:
- print("None of these urls look like tarballs:", file=sys.stderr)
+ warn("None of these urls look like tarballs:")
for url in urls:
- print("\t%s", url, file=sys.stderr)
- print("Cannot proceed", file=sys.stderr)
- sys.exit(1)
+ warn("\t%s", url)
+ error("Cannot proceed")
else:
- print("Couldn't find any download urls for package", file=sys.stderr)
- sys.exit(1)
+ error("Couldn't find any download urls for package")
urls = [{'url': 'http://foobar/baz.tar'}]
@@ -161,8 +162,7 @@ def str_repo_lorry(package_name, repo_type, url):
indent=4, sort_keys=True)
if len(sys.argv) != 2:
- print('usage: %s python_package' % sys.argv[0], file=sys.stderr)
- sys.exit(1)
+ error('usage: %s python_package' % sys.argv[0])
package_name = sys.argv[1]
metadata = fetch_package_metadata(package_name)
@@ -172,5 +172,3 @@ repo_type = find_repo_type(info['home_page']) if 'home_page' in info else None
print(str_repo_lorry(package_name, repo_type, info['home_page'])
if repo_type else generate_tarball_lorry(package_name))
-
-# TODO: argv in err msgs