summaryrefslogtreecommitdiffstats
path: root/bin/emerge
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2006-11-11 13:39:18 +0000
committerZac Medico <zmedico@gentoo.org>2006-11-11 13:39:18 +0000
commitc32e7fb77be44a2df22d6646758e2795a9587212 (patch)
treefae752d55cd1ba72f4b8b9e99588847e16e538f8 /bin/emerge
parentbed087fd07e65fa038a4420b59b95a49557c8467 (diff)
downloadportage-c32e7fb77be44a2df22d6646758e2795a9587212.tar.gz
portage-c32e7fb77be44a2df22d6646758e2795a9587212.tar.bz2
portage-c32e7fb77be44a2df22d6646758e2795a9587212.zip
Fix emerge --sync with a cvs:// uri so that it runs /etc/portage/bin/post_sync like it would with a normal rsync:// uri. Thanks to drizzt for reporting.
svn path=/main/trunk/; revision=5004
Diffstat (limited to 'bin/emerge')
-rwxr-xr-xbin/emerge15
1 files changed, 10 insertions, 5 deletions
diff --git a/bin/emerge b/bin/emerge
index aeca31df7..ecc04e048 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -3089,6 +3089,7 @@ def action_sync(settings, trees, mtimedb, myopts, myaction):
os.makedirs(myportdir,0755)
syncuri=string.rstrip(settings["SYNC"])
os.umask(0022)
+ updatecache_flg = False
if myaction == "metadata":
print "skipping sync"
updatecache_flg = True
@@ -3412,11 +3413,14 @@ def action_sync(settings, trees, mtimedb, myopts, myaction):
sys.exit(1)
if cvsdir!=myportdir:
portage.movefile(cvsdir,settings["PORTDIR"])
- sys.exit(0)
else:
#cvs update
print ">>> Starting cvs update with "+syncuri+"..."
- sys.exit(portage.spawn("cd "+myportdir+"; cvs -z0 -q update -dP",settings,free=1))
+ retval = portage.spawn("cd '%s'; cvs -z0 -q update -dP" % \
+ myportdir, settings, free=1)
+ if retval != os.EX_OK:
+ sys.exit(retval)
+ dosyncuri = syncuri
else:
print "!!! rsync setting: ",syncuri,"not recognized; exiting."
sys.exit(1)
@@ -3448,9 +3452,10 @@ def action_sync(settings, trees, mtimedb, myopts, myaction):
if myaction != "metadata":
if os.access(portage.USER_CONFIG_PATH + "/bin/post_sync", os.X_OK):
- try:
- portage.spawn(portage.USER_CONFIG_PATH + "/bin/post_sync " + dosyncuri, settings, free=1)
- except:
+ retval = portage.portage_exec.spawn(
+ [os.path.join(portage.USER_CONFIG_PATH, "bin", "post_sync"),
+ dosyncuri], env=settings.environ())
+ if retval != os.EX_OK:
print red(" * ")+bold("spawn failed of "+ portage.USER_CONFIG_PATH + "/bin/post_sync")
if(mybestpv != mypvs) and not "--quiet" in myopts: