From: Ansgar Burchardt <ansgar@debian.org>
Date: Sun, 20 Oct 2013 11:56:10 +0000 (+0200)
Subject: daklib/checks.py: make lintian check use subprocess module
X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=7e1b266db5af1e4ecc437c363b45fc1b405b4cde;p=dak.git

daklib/checks.py: make lintian check use subprocess module
---

diff --git a/daklib/checks.py b/daklib/checks.py
index f0d19ad5..abc2dcc1 100644
--- a/daklib/checks.py
+++ b/daklib/checks.py
@@ -24,6 +24,7 @@ Please read the documentation for the L{Check} class for the interface.
 """
 
 from daklib.config import Config
+import daklib.daksubprocess
 from daklib.dbconn import *
 import daklib.dbconn as dbconn
 from daklib.regexes import *
@@ -37,12 +38,10 @@ import apt_pkg
 from apt_pkg import version_compare
 import errno
 import os
+import subprocess
 import time
 import yaml
 
-# TODO: replace by subprocess
-import commands
-
 def check_fields_for_valid_utf8(filename, control):
     """Check all fields of a control file for valid UTF-8"""
     for field in control.keys():
@@ -657,13 +656,17 @@ class LintianCheck(Check):
         changespath = os.path.join(upload.directory, changes.filename)
         try:
             cmd = []
+            result = 0
 
             user = cnf.get('Dinstall::UnprivUser') or None
             if user is not None:
                 cmd.extend(['sudo', '-H', '-u', user])
 
             cmd.extend(['LINTIAN_COLL_UNPACKED_SKIP_SIG=1', '/usr/bin/lintian', '--show-overrides', '--tags-from-file', temp_filename, changespath])
-            result, output = commands.getstatusoutput(" ".join(cmd))
+            output = daklib.daksubprocess.check_output(cmd, stderr=subprocess.STDOUT)
+        except subprocess.CalledProcessError as e:
+            result = e.returncode
+            output = e.output
         finally:
             os.unlink(temp_filename)