summaryrefslogtreecommitdiff
path: root/morphlib/app.py
diff options
context:
space:
mode:
Diffstat (limited to 'morphlib/app.py')
-rw-r--r--morphlib/app.py14
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)