diff options
author | Daniel Firth <dan.firth@codethink.co.uk> | 2013-10-10 14:31:47 +0100 |
---|---|---|
committer | Daniel Firth <dan.firth@codethink.co.uk> | 2013-10-10 14:31:47 +0100 |
commit | 6104e59732b140e73cee5f5c575fb31334b2ab0d (patch) | |
tree | ae6fe2d8b453a0ebfcec8a6729fcd74978ae9b16 | |
parent | df64e4300d7b39c29ce75273196a7894c86a98a9 (diff) | |
download | morph-6104e59732b140e73cee5f5c575fb31334b2ab0d.tar.gz |
Morph now validates the 'tarball-server' option as a url
-rw-r--r-- | morphlib/app.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/morphlib/app.py b/morphlib/app.py index a0833d45..0c4f3455 100644 --- a/morphlib/app.py +++ b/morphlib/app.py @@ -20,10 +20,17 @@ import logging import os import sys import time +import urlparse import warnings import morphlib +class InvalidUrlError(cliapp.AppException): + + def __init__(self, parameter, url): + cliapp.AppException.__init__( + self, 'Value %s for argument %s is not a url' % + (url, parameter)) defaults = { 'trove-host': 'git.baserock.org', @@ -200,6 +207,13 @@ class Morph(cliapp.Application): tmpdir = os.path.join(tmpdir_base, 'morph_tmp') self.settings['tempdir'] = tmpdir + if self.settings['tarball-server']: + url_split = urlparse.urlparse(self.settings['tarball-server']) + if not (url_split.netloc and + url_split.scheme in ('http', 'https', 'file')): + raise InvalidUrlError('tarball-server', + self.settings['tarball-server']) + if 'MORPH_DUMP_PROCESSED_CONFIG' in os.environ: self.settings.dump_config(sys.stdout) sys.exit(0) |