summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2010-11-19 19:58:26 +0100
committerZac Medico <zmedico@gentoo.org>2010-11-23 18:04:56 -0800
commit1575a5685fb796ba159a2164c0f585b859248b50 (patch)
tree158bb2e031f6ec84ec20534bb503d1eeb158f4af /pym
parent224fa08d85288248d5c4a7bfab2937d5a00d9dc3 (diff)
downloadportage-1575a5685fb796ba159a2164c0f585b859248b50.tar.gz
portage-1575a5685fb796ba159a2164c0f585b859248b50.tar.bz2
portage-1575a5685fb796ba159a2164c0f585b859248b50.zip
Support syncing over ssh with ssh://host//path.
Diffstat (limited to 'pym')
-rw-r--r--pym/_emerge/actions.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py
index fc2048ab3..23d0f89dd 100644
--- a/pym/_emerge/actions.py
+++ b/pym/_emerge/actions.py
@@ -1989,7 +1989,7 @@ def action_sync(settings, trees, mtimedb, myopts, myaction):
exitcode = git_sync_timestamps(settings, myportdir)
if exitcode == os.EX_OK:
updatecache_flg = True
- elif syncuri[:8]=="rsync://":
+ elif syncuri[:8]=="rsync://" or syncuri[:6]=="ssh://":
for vcs_dir in vcs_dirs:
writemsg_level(("!!! %s appears to be under revision " + \
"control (contains %s).\n!!! Aborting rsync sync.\n") % \
@@ -2097,8 +2097,8 @@ def action_sync(settings, trees, mtimedb, myopts, myaction):
maxretries = -1 #default number of retries
retries=0
- user_name, hostname, port = re.split(
- "rsync://([^:/]+@)?([^:/]*)(:[0-9]+)?", syncuri, maxsplit=3)[1:4]
+ proto, user_name, hostname, port = re.split(
+ "(rsync|ssh)://([^:/]+@)?([^:/]*)(:[0-9]+)?", syncuri, maxsplit=4)[1:5]
if port is None:
port=""
if user_name is None:
@@ -2203,6 +2203,9 @@ def action_sync(settings, trees, mtimedb, myopts, myaction):
"\n\n>>> Starting retry %d of %d with %s\n" % \
(retries, effective_maxretries, dosyncuri), noiselevel=-1)
+ if dosyncuri.startswith('ssh://'):
+ dosyncuri = dosyncuri[6:].replace('/', ':', 1)
+
if mytimestamp != 0 and "--quiet" not in myopts:
print(">>> Checking server timestamp ...")