[game-data-packager] 01/01: move current_version() to PACKAGE_CACHE

Alexandre Detiste detiste-guest at moszumanska.debian.org
Sat Oct 10 08:52:09 UTC 2015


This is an automated email from the git hooks/post-receive script.

detiste-guest pushed a commit to branch master
in repository game-data-packager.

commit d82420cf9a9e0c9fc515bba22f345e025d6cc38f
Author: Alexandre Detiste <alexandre.detiste at gmail.com>
Date:   Sat Oct 10 10:51:39 2015 +0200

    move current_version() to PACKAGE_CACHE
---
 game_data_packager/build.py |  6 ++----
 game_data_packager/util.py  | 13 +++++++++++--
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/game_data_packager/build.py b/game_data_packager/build.py
index 2e71c1b..2fe4512 100644
--- a/game_data_packager/build.py
+++ b/game_data_packager/build.py
@@ -1780,9 +1780,7 @@ class PackagingTask(object):
 
         # check version
         if is_installed:
-            current_ver = subprocess.check_output(['dpkg-query',
-                   '--show', '--showformat', '${Version}', engine],
-                    universal_newlines=True)
+            current_ver = PACKAGE_CACHE.current_version(engine)
         else:
             current_ver = subprocess.check_output(['apt-cache',
                    'madison', engine],
@@ -1790,7 +1788,7 @@ class PackagingTask(object):
             current_ver = current_ver.splitlines()[0]
             current_ver = current_ver.split('|')[1].strip()
 
-        if Version(current_ver) >= Version(ver):
+        if current_ver and Version(current_ver) >= Version(ver):
             return FillResult.COMPLETE
         else:
             return FillResult.UPGRADE_NEEDED
diff --git a/game_data_packager/util.py b/game_data_packager/util.py
index ff0e1be..8fe08a8 100644
--- a/game_data_packager/util.py
+++ b/game_data_packager/util.py
@@ -138,6 +138,16 @@ class PackageCache:
 
         return package in self.available
 
+    def current_version(self, package):
+        # 'dpkg-query: no packages found matching $package'
+        # will leak on stderr if called with an unknown package,
+        # but that should never happen
+        try:
+            return subprocess.check_output(['dpkg-query', '--show',
+              '--showformat', '${Version}', package], universal_newlines=True)
+        except subprocess.CalledProcessError:
+            return
+
 PACKAGE_CACHE = PackageCache()
 
 def prefered_lang():
@@ -202,8 +212,7 @@ def install_packages(debs, method, gain_root='su'):
         method = None
 
     if not method:
-        apt_ver = subprocess.check_output(['dpkg-query', '--show',
-                    '--showformat', '${Version}', 'apt'], universal_newlines=True)
+        apt_ver = PACKAGE_CACHE.current_version('apt')
         if Version(apt_ver.strip()) >= Version('1.1~0'):
             method = 'apt'
         else:

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/game-data-packager.git



More information about the Pkg-games-commits mailing list