chiark / gitweb /
Rename PopenResult.stdout to output since it also contains stderr
authorDaniel Martí <mvdan@mvdan.cc>
Tue, 1 Jul 2014 16:04:41 +0000 (18:04 +0200)
committerDaniel Martí <mvdan@mvdan.cc>
Tue, 1 Jul 2014 16:04:41 +0000 (18:04 +0200)
fdroidserver/build.py
fdroidserver/common.py
fdroidserver/init.py
fdroidserver/install.py
fdroidserver/update.py
fdroidserver/verify.py

index dfbf4699131b555d7e54f65c1f43a7314a9f04fd..32c6602f748ed8170fa0405f9dc44e80014b074b 100644 (file)
@@ -84,7 +84,7 @@ def vagrant(params, cwd=None, printout=False):
                is the stdout (and stderr) from vagrant
     """
     p = FDroidPopen(['vagrant'] + params, cwd=cwd)
-    return (p.returncode, p.stdout)
+    return (p.returncode, p.output)
 
 
 def get_vagrant_sshinfo():
@@ -136,7 +136,7 @@ def get_clean_vm(reset=False):
             p = FDroidPopen(['VBoxManage', 'snapshot',
                              get_builder_vm_id(), 'list',
                              '--details'], cwd='builder')
-            if 'fdroidclean' in p.stdout:
+            if 'fdroidclean' in p.output:
                 logging.info("...snapshot exists - resetting build server to "
                              "clean state")
                 retcode, output = vagrant(['status'], cwd='builder')
@@ -163,7 +163,7 @@ def get_clean_vm(reset=False):
                     logging.info("...failed to reset to snapshot")
             else:
                 logging.info("...snapshot doesn't exist - "
-                             "VBoxManage snapshot list:\n" + p.stdout)
+                             "VBoxManage snapshot list:\n" + p.output)
 
     # If we can't use the existing machine for any reason, make a
     # new one from scratch.
@@ -227,7 +227,7 @@ def get_clean_vm(reset=False):
         p = FDroidPopen(['VBoxManage', 'snapshot', get_builder_vm_id(),
                          'list', '--details'],
                         cwd='builder')
-        if 'fdroidclean' not in p.stdout:
+        if 'fdroidclean' not in p.output:
             raise BuildException("Failed to take snapshot.")
 
     return sshinfo
@@ -494,7 +494,7 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
 
     if p is not None and p.returncode != 0:
         raise BuildException("Error cleaning %s:%s" %
-                             (app['id'], thisbuild['version']), p.stdout)
+                             (app['id'], thisbuild['version']), p.output)
 
     logging.info("Getting rid of Gradle wrapper binaries...")
     for root, dirs, files in os.walk(build_dir):
@@ -560,7 +560,7 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
 
         if p.returncode != 0:
             raise BuildException("Error running build command for %s:%s" %
-                                 (app['id'], thisbuild['version']), p.stdout)
+                                 (app['id'], thisbuild['version']), p.output)
 
     # Build native stuff if required...
     if thisbuild['buildjni'] and thisbuild['buildjni'] != ['no']:
@@ -588,7 +588,7 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
                 del manifest_text
             p = FDroidPopen(cmd, cwd=os.path.join(root_dir, d))
             if p.returncode != 0:
-                raise BuildException("NDK build failed for %s:%s" % (app['id'], thisbuild['version']), p.stdout)
+                raise BuildException("NDK build failed for %s:%s" % (app['id'], thisbuild['version']), p.output)
 
     p = None
     # Build the release...
@@ -725,12 +725,12 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
         bindir = os.path.join(root_dir, 'bin')
 
     if p is not None and p.returncode != 0:
-        raise BuildException("Build failed for %s:%s" % (app['id'], thisbuild['version']), p.stdout)
+        raise BuildException("Build failed for %s:%s" % (app['id'], thisbuild['version']), p.output)
     logging.info("Successfully built version " + thisbuild['version'] + ' of ' + app['id'])
 
     if thisbuild['type'] == 'maven':
         stdout_apk = '\n'.join([
-            line for line in p.stdout.splitlines() if any(a in line for a in ('.apk', '.ap_'))])
+            line for line in p.output.splitlines() if any(a in line for a in ('.apk', '.ap_'))])
         m = re.match(r".*^\[INFO\] .*apkbuilder.*/([^/]*)\.apk",
                      stdout_apk, re.S | re.M)
         if not m:
@@ -766,7 +766,7 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
             src = os.path.join(dd, 'build', 'apk', name + '.apk')
     elif thisbuild['type'] == 'ant':
         stdout_apk = '\n'.join([
-            line for line in p.stdout.splitlines() if '.apk' in line])
+            line for line in p.output.splitlines() if '.apk' in line])
         src = re.match(r".*^.*Creating (.+) for release.*$.*", stdout_apk,
                        re.S | re.M).group(1)
         src = os.path.join(bindir, src)
@@ -792,7 +792,7 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
     version = None
     foundid = None
     nativecode = None
-    for line in p.stdout.splitlines():
+    for line in p.output.splitlines():
         if line.startswith("package:"):
             pat = re.compile(".*name='([a-zA-Z0-9._]*)'.*")
             m = pat.match(line)
index 14e1f06d6d47a051371901a31a8d05a45e432f68..aa362ea8e22ec0177cc5565b35790d3ef39eaaa1 100644 (file)
@@ -414,7 +414,7 @@ class vcs_git(vcs):
     # a safety check.
     def checkrepo(self):
         p = SilentPopen(['git', 'rev-parse', '--show-toplevel'], cwd=self.local)
-        result = p.stdout.rstrip()
+        result = p.output.rstrip()
         if not result.endswith(self.local):
             raise VCSException('Repository mismatch')
 
@@ -492,7 +492,7 @@ class vcs_git(vcs):
     def gettags(self):
         self.checkrepo()
         p = SilentPopen(['git', 'tag'], cwd=self.local)
-        return p.stdout.splitlines()
+        return p.output.splitlines()
 
     def latesttags(self, alltags, number):
         self.checkrepo()
@@ -500,7 +500,7 @@ class vcs_git(vcs):
                         + 'xargs -I@ git log --format=format:"%at @%n" -1 @ | '
                         + 'sort -n | awk \'{print $2}\''],
                         cwd=self.local, shell=True)
-        return p.stdout.splitlines()[-number:]
+        return p.output.splitlines()[-number:]
 
 
 class vcs_gitsvn(vcs):
@@ -521,7 +521,7 @@ class vcs_gitsvn(vcs):
     # a safety check.
     def checkrepo(self):
         p = SilentPopen(['git', 'rev-parse', '--show-toplevel'], cwd=self.local)
-        result = p.stdout.rstrip()
+        result = p.output.rstrip()
         if not result.endswith(self.local):
             raise VCSException('Repository mismatch')
 
@@ -587,7 +587,7 @@ class vcs_gitsvn(vcs):
                     svn_rev = rev
 
                 p = SilentPopen(['git', 'svn', 'find-rev', 'r' + svn_rev, treeish], cwd=self.local)
-                git_rev = p.stdout.rstrip()
+                git_rev = p.output.rstrip()
 
                 if p.returncode != 0 or not git_rev:
                     # Try a plain git checkout as a last resort
@@ -614,7 +614,7 @@ class vcs_gitsvn(vcs):
         p = SilentPopen(['git', 'svn', 'find-rev', 'HEAD'], cwd=self.local)
         if p.returncode != 0:
             return None
-        return p.stdout.strip()
+        return p.output.strip()
 
 
 class vcs_svn(vcs):
@@ -654,7 +654,7 @@ class vcs_svn(vcs):
 
     def getref(self):
         p = SilentPopen(['svn', 'info'], cwd=self.local)
-        for line in p.stdout.splitlines():
+        for line in p.output.splitlines():
             if line and line.startswith('Last Changed Rev: '):
                 return line[18:]
         return None
@@ -688,7 +688,7 @@ class vcs_hg(vcs):
             raise VCSException("Hg checkout of '%s' failed" % rev)
         p = SilentPopen(['hg', 'purge', '--all'], cwd=self.local)
         # Also delete untracked files, we have to enable purge extension for that:
-        if "'purge' is provided by the following extension" in p.stdout:
+        if "'purge' is provided by the following extension" in p.output:
             with open(self.local + "/.hg/hgrc", "a") as myfile:
                 myfile.write("\n[extensions]\nhgext.purge=\n")
             p = SilentPopen(['hg', 'purge', '--all'], cwd=self.local)
@@ -699,7 +699,7 @@ class vcs_hg(vcs):
 
     def gettags(self):
         p = SilentPopen(['hg', 'tags', '-q'], cwd=self.local)
-        return p.stdout.splitlines()[1:]
+        return p.output.splitlines()[1:]
 
 
 class vcs_bzr(vcs):
@@ -730,7 +730,7 @@ class vcs_bzr(vcs):
     def gettags(self):
         p = SilentPopen(['bzr', 'tags'], cwd=self.local)
         return [tag.split('   ')[0].strip() for tag in
-                p.stdout.splitlines()]
+                p.output.splitlines()]
 
 
 def retrieve_string(app_dir, string, xmlfiles=None):
@@ -1036,7 +1036,7 @@ def getsrclib(spec, srclib_dir, srclibpaths=[], subdir=None,
             p = FDroidPopen(['bash', '-x', '-c', cmd], cwd=libdir)
             if p.returncode != 0:
                 raise BuildException("Error running prepare command for srclib %s"
-                                     % name, p.stdout)
+                                     % name, p.output)
 
     if basepath:
         libdir = sdir
@@ -1088,7 +1088,7 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
         p = FDroidPopen(['bash', '-x', '-c', cmd], cwd=root_dir)
         if p.returncode != 0:
             raise BuildException("Error running init command for %s:%s" %
-                                 (app['id'], build['version']), p.stdout)
+                                 (app['id'], build['version']), p.output)
 
     # Apply patches if any
     if build['patch']:
@@ -1292,7 +1292,7 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
         p = FDroidPopen(['bash', '-x', '-c', cmd], cwd=root_dir)
         if p.returncode != 0:
             raise BuildException("Error running prebuild command for %s:%s" %
-                                 (app['id'], build['version']), p.stdout)
+                                 (app['id'], build['version']), p.output)
 
     # Generate (or update) the ant build file, build.xml...
     if build['update'] and build['update'] != ['no'] and build['type'] == 'ant':
@@ -1320,8 +1320,8 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
             # Check to see whether an error was returned without a proper exit
             # code (this is the case for the 'no target set or target invalid'
             # error)
-            if p.returncode != 0 or p.stdout.startswith("Error: "):
-                raise BuildException("Failed to update project at %s" % d, p.stdout)
+            if p.returncode != 0 or p.output.startswith("Error: "):
+                raise BuildException("Failed to update project at %s" % d, p.output)
             # Clean update dirs via ant
             if d != '.':
                 logging.info("Cleaning subproject %s" % d)
@@ -1553,7 +1553,7 @@ def isApkDebuggable(apkfile, config):
     if p.returncode != 0:
         logging.critical("Failed to get apk manifest information")
         sys.exit(1)
-    for line in p.stdout.splitlines():
+    for line in p.output.splitlines():
         if 'android:debuggable' in line and not line.endswith('0x0'):
             return True
     return False
@@ -1585,7 +1585,7 @@ class AsynchronousFileReader(threading.Thread):
 
 class PopenResult:
     returncode = None
-    stdout = ''
+    output = ''
 
 
 def SilentPopen(commands, cwd=None, shell=False):
@@ -1622,7 +1622,7 @@ def FDroidPopen(commands, cwd=None, shell=False, output=True):
                 # Output directly to console
                 sys.stdout.write(line)
                 sys.stdout.flush()
-            result.stdout += line
+            result.output += line
 
         time.sleep(0.1)
 
index f0c5c8880b19fa070471b9c948f59a6afbd83f79..a3eded5b3819e7be225f9cc04642540c986f83d7 100644 (file)
@@ -81,12 +81,12 @@ def genkey(keystore, repo_keyalias, password, keydname):
                      '-dname', keydname])
     # TODO keypass should be sent via stdin
     if p.returncode != 0:
-        raise BuildException("Failed to generate key", p.stdout)
+        raise BuildException("Failed to generate key", p.output)
     # now show the lovely key that was just generated
     p = FDroidPopen(['keytool', '-list', '-v',
                      '-keystore', keystore, '-alias', repo_keyalias,
                      '-storepass:file', config['keystorepassfile']])
-    logging.info(p.stdout.strip() + '\n\n')
+    logging.info(p.output.strip() + '\n\n')
 
 
 def main():
index 146c1c59f91f662933167377a32a132e2a7c2774..50bf59c5b69a4cafc109af1042e35fc6d73f63d5 100644 (file)
@@ -34,8 +34,8 @@ config = None
 def devices():
     p = FDroidPopen(["adb", "devices"])
     if p.returncode != 0:
-        raise Exception("An error occured when finding devices: %s" % p.stdout)
-    lines = p.stdout.splitlines()
+        raise Exception("An error occured when finding devices: %s" % p.output)
+    lines = p.output.splitlines()
     if lines[0].startswith('* daemon not running'):
         lines = lines[2:]
     if len(lines) < 3:
@@ -102,7 +102,7 @@ def main():
             logging.info("Installing %s on %s..." % (apk, dev))
             p = FDroidPopen(["adb", "-s", dev, "install", apk])
             fail = ""
-            for line in p.stdout.splitlines():
+            for line in p.output.splitlines():
                 if line.startswith("Failure"):
                     fail = line[9:-1]
             if not fail:
index 92ec3fab5857f049cdddc8b15ce3d4e79196bc38..bff615e43939d11aa3f3dd429aa4fc818d733fbb 100644 (file)
@@ -387,7 +387,7 @@ def scan_apks(apps, apkcache, repodir, knownapks):
                 else:
                     logging.error("Failed to get apk information, skipping " + apkfile)
                 continue
-            for line in p.stdout.splitlines():
+            for line in p.output.splitlines():
                 if line.startswith("package:"):
                     try:
                         thisinfo['id'] = re.match(name_pat, line).group(1)
@@ -470,10 +470,10 @@ def scan_apks(apps, apkcache, repodir, knownapks):
                 sys.exit(1)
             p = FDroidPopen(['java', '-cp', os.path.join(os.path.dirname(__file__), 'getsig'),
                              'getsig', os.path.join(os.getcwd(), apkfile)])
-            if p.returncode != 0 or not p.stdout.startswith('Result:'):
+            if p.returncode != 0 or not p.output.startswith('Result:'):
                 logging.critical("Failed to get apk signature")
                 sys.exit(1)
-            thisinfo['sig'] = p.stdout[7:].strip()
+            thisinfo['sig'] = p.output[7:].strip()
 
             apk = zipfile.ZipFile(apkfile, 'r')
 
@@ -672,8 +672,8 @@ def make_index(apps, apks, repodir, archive, categories):
                 logging.critical(msg)
                 sys.exit(1)
             global repo_pubkey_fingerprint
-            repo_pubkey_fingerprint = cert_fingerprint(p.stdout)
-            return "".join("%02x" % ord(b) for b in p.stdout)
+            repo_pubkey_fingerprint = cert_fingerprint(p.output)
+            return "".join("%02x" % ord(b) for b in p.output)
 
         repoel.setAttribute("pubkey", extract_pubkey())
 
index 3dc4c18f4dd20a2ea85b214404dea74fb4b160e3..417f2c51ce9437a0be192316dea8b601e54e17c0 100644 (file)
@@ -101,9 +101,9 @@ def main():
                 raise Exception("Failed to unpack remote build of " + apkfilename)
 
             p = FDroidPopen(['diff', '-r', 'this_apk', 'that_apk'], cwd=tmp_dir)
-            lines = p.stdout.splitlines()
+            lines = p.output.splitlines()
             if len(lines) != 1 or 'META-INF' not in lines[0]:
-                raise Exception("Unexpected diff output - " + p.stdout)
+                raise Exception("Unexpected diff output - " + p.output)
 
             logging.info("...successfully verified")
             verified += 1