aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools/package_index.py
diff options
context:
space:
mode:
authorPaulo Koch <paulo.koch@gmail.com>2011-10-11 18:25:09 +0100
committerPaulo Koch <paulo.koch@gmail.com>2011-10-11 18:25:09 +0100
commit67ee093341a7342fcbe29dd99800c373abd872a0 (patch)
tree18672104947dcb59e199943aa7579868476d4a44 /setuptools/package_index.py
parentcada83b25777a9b089b85bc4417baa7016a9c652 (diff)
downloadexternal_python_setuptools-67ee093341a7342fcbe29dd99800c373abd872a0.tar.gz
external_python_setuptools-67ee093341a7342fcbe29dd99800c373abd872a0.tar.bz2
external_python_setuptools-67ee093341a7342fcbe29dd99800c373abd872a0.zip
Add support for git URLs.
--HG-- branch : distribute extra : rebase_source : f664e8cf2b7b6f78096cd00463f4e2009bdeb3ac
Diffstat (limited to 'setuptools/package_index.py')
-rwxr-xr-xsetuptools/package_index.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/setuptools/package_index.py b/setuptools/package_index.py
index d0896feb..da586a27 100755
--- a/setuptools/package_index.py
+++ b/setuptools/package_index.py
@@ -657,6 +657,8 @@ class PackageIndex(Environment):
#
if scheme=='svn' or scheme.startswith('svn+'):
return self._download_svn(url, filename)
+ elif scheme=='git' or scheme.startswith('git+'):
+ return self._download_git(url, filename)
elif scheme=='file':
return urllib.url2pathname(urlparse.urlparse(url)[2])
else:
@@ -697,6 +699,15 @@ class PackageIndex(Environment):
os.system("svn checkout -q %s %s" % (url, filename))
return filename
+ def _download_git(self, url, filename):
+ if url.startswith('git+'):
+ url = url[4:]
+ url = url.split('#',1)[0] # remove any fragment for svn's sake
+ filename = filename.split('#',1)[0] # remove any fragment to get a decent name.
+ self.info("Doing git clone from %s to %s", url, filename)
+ os.system("git clone -q %s %s" % (url, filename))
+ return filename
+
def debug(self, msg, *args):
log.debug(msg, *args)