Add --protocol-override option
authorDaniel Bainton <daniel.bainton@movial.com>
Fri, 20 Mar 2009 13:35:56 +0000 (15:35 +0200)
committerDaniel Bainton <daniel.bainton@movial.com>
Fri, 20 Mar 2009 13:35:56 +0000 (15:35 +0200)
matrix/config.py
matrix/git.py
matrix/matrix.py

index 9d00d12..070e51c 100644 (file)
@@ -226,6 +226,7 @@ class Config(object):
                self.flags = set()
                self.verbose = False
                self.debug = False
+               self.protocol = False
                self.force = False
                self.keep_going = False
                self.pull_config_dirs = False
index 45d209f..2a17432 100644 (file)
@@ -1,11 +1,13 @@
-# Copyright (C) 2007-2008 Movial Creative Technologies Inc.
+# Copyright (C) 2007-2009 Movial Creative Technologies Inc.
 # Authors: Timo Savola
 #          Toni Timonen
+#          Daniel Bainton <daniel.bainton@movial.com>
 
 import bz2
 import os
 import signal
 import sys
+import re
 
 from config import config
 
@@ -139,6 +141,8 @@ def clone(name, url, checkout=True):
        if not checkout:
                options = ['-n']
 
+       if config.protocol:
+               url = re.sub(".*://", config.protocol + "://", url)
        call(['clone'] + options + [url, name], fail=True)
 
 def branch_active(name):
index 7bd9641..5bf6b75 100644 (file)
@@ -3,6 +3,7 @@
 #          Toni Timonen
 #          Kalle Vahlman <kalle.vahlman@movial.com>
 #          Tuomas Kulve <tuomas.kulve@movial.com>
+#          Daniel Bainton <daniel.bainton@movial.com>
 
 import optparse
 import os
@@ -110,6 +111,9 @@ def parse_args(matrix_version):
                                (opt, value))
                options[option.dest] = value
 
+       def set_protocol(option, opt, value, parser):
+               options[option.dest] = value
+
        def append(option, opt, value, parser):
                l = options.get(option.dest, [])
                if not l:
@@ -160,6 +164,12 @@ def parse_args(matrix_version):
                type='string')
 
        parser.add_option(
+               '-o', '--protocol-override', metavar='PROTOCOL',
+               help='overrides the default protocol used for the git repos when cloning ',
+               dest='protocol', action='callback', callback=set_protocol,
+               type='string')
+
+       parser.add_option(
                '-f', '--force',
                help='build (or be quiet about) components with dirty files',
                dest='force', action='callback', callback=set_flag)