summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2010-07-24 13:52:44 -0700
committerZac Medico <zmedico@gentoo.org>2010-07-24 13:52:44 -0700
commit45709611085ba5f8c9670ce9877fed5031416fc5 (patch)
treeb9ca7057ca6faf67a6f8afc67eb2664c6e696887 /bin
parentportage.dep._use_dep: better validation, enable all tests (diff)
downloadportage-multirepo-45709611085ba5f8c9670ce9877fed5031416fc5.tar.gz
portage-multirepo-45709611085ba5f8c9670ce9877fed5031416fc5.tar.bz2
portage-multirepo-45709611085ba5f8c9670ce9877fed5031416fc5.zip
Handle UnicodeDecodeError from subprocess.getstatusoutput() calls, reported
with python3.1.
Diffstat (limited to 'bin')
-rwxr-xr-xbin/dispatch-conf26
1 files changed, 11 insertions, 15 deletions
diff --git a/bin/dispatch-conf b/bin/dispatch-conf
index 43fe145a..fc9cdd51 100755
--- a/bin/dispatch-conf
+++ b/bin/dispatch-conf
@@ -19,12 +19,7 @@ if not hasattr(__builtins__, "set"):
from stat import *
from random import *
import atexit, re, shutil, stat, sys
-try:
- from subprocess import getoutput as subprocess_getoutput
- from subprocess import getstatusoutput as subprocess_getstatusoutput
-except ImportError:
- from commands import getoutput as subprocess_getoutput
- from commands import getstatusoutput as subprocess_getstatusoutput
+
try:
import portage
except ImportError:
@@ -35,6 +30,7 @@ except ImportError:
from portage import os
from portage import dispatch_conf
from portage import _unicode_decode
+from portage.dispatch_conf import diffstatusoutput_len
from portage.process import find_binary
FIND_EXTANT_CONFIGS = "find '%s' %s -name '._cfg????_%s' ! -name '.*~' ! -iname '.*.bak' -print"
@@ -137,11 +133,11 @@ class dispatch:
else:
mrgfail = portage.dispatch_conf.file_archive(archive, conf['current'], conf['new'], mrgconf)
if os.path.exists(archive + '.dist'):
- unmodified = len(subprocess_getoutput(DIFF_CONTENTS % (conf['current'], archive + '.dist'))) == 0
+ unmodified = diffstatusoutput_len(DIFF_CONTENTS % (conf['current'], archive + '.dist'))[1] == 0
else:
unmodified = 0
if os.path.exists(mrgconf):
- if mrgfail or len(subprocess_getoutput(DIFF_CONTENTS % (conf['new'], mrgconf))) == 0:
+ if mrgfail or diffstatusoutput_len(DIFF_CONTENTS % (conf['new'], mrgconf))[1] == 0:
os.unlink(mrgconf)
newconf = conf['new']
else:
@@ -152,24 +148,24 @@ class dispatch:
if newconf == mrgconf and \
self.options.get('ignore-previously-merged') != 'yes' and \
os.path.exists(archive+'.dist') and \
- len(subprocess_getoutput(DIFF_CONTENTS % (archive+'.dist', conf['new']))) == 0:
+ diffstatusoutput_len(DIFF_CONTENTS % (archive+'.dist', conf['new']))[1] == 0:
# The current update is identical to the archived .dist
# version that has previously been merged.
os.unlink(mrgconf)
newconf = conf['new']
- mystatus, myoutput = subprocess_getstatusoutput(
+ mystatus, myoutput_len = diffstatusoutput_len(
DIFF_CONTENTS % (conf ['current'], newconf))
- same_file = 0 == len(myoutput)
+ same_file = 0 == myoutput_len
if mystatus >> 8 == 2:
# Binary files differ
same_cvs = False
same_wsc = False
else:
- same_cvs = 0 == len(subprocess_getoutput(
- DIFF_CVS_INTERP % (conf ['current'], newconf)))
- same_wsc = 0 == len(subprocess_getoutput(
- DIFF_WSCOMMENTS % (conf ['current'], newconf)))
+ same_cvs = 0 == diffstatusoutput_len(
+ DIFF_CVS_INTERP % (conf ['current'], newconf))[1]
+ same_wsc = 0 == diffstatusoutput_len(
+ DIFF_WSCOMMENTS % (conf ['current'], newconf))[1]
# Do options permit?
same_cvs = same_cvs and self.options['replace-cvs'] == 'yes'