[game-data-packager] 01/01: rework logic to avoid extraneous donwloads

Alexandre Detiste detiste-guest at moszumanska.debian.org
Mon Aug 24 12:41:37 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 1464c2eedecaf48bd02db1b0f14fdc79549fc42d
Author: Alexandre Detiste <alexandre.detiste at gmail.com>
Date:   Mon Aug 24 14:37:31 2015 +0200

    rework logic to avoid extraneous donwloads
    
    e.g.: when building dreamweb-fr-data,
    dreamweb-cd-uk-1.1.zip is downloaded as it can provide some files,
    but then dreamweb-cd-fr-1.1.zip is downloaded too to provide
    missing dubbed files
    
    same happens for Soltys: when building english package
    is sometimes provided by spanish archive
---
 data/dreamweb.yaml             |  2 +-
 game_data_packager/__init__.py | 10 ++++++++++
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/data/dreamweb.yaml b/data/dreamweb.yaml
index 606271a..1c196db 100644
--- a/data/dreamweb.yaml
+++ b/data/dreamweb.yaml
@@ -3551,7 +3551,7 @@ packages:
 
 files:
   dreamweb-cd-us-1.1.zip:
-    #download: http://prdownloads.sourceforge.net/scummvm/dreamweb-cd-us-1.1.zip?download
+    download: http://prdownloads.sourceforge.net/scummvm/dreamweb-cd-us-1.1.zip?download
     unpack:
       format: zip
     provides:
diff --git a/game_data_packager/__init__.py b/game_data_packager/__init__.py
index 2f772e8..db7e69c 100644
--- a/game_data_packager/__init__.py
+++ b/game_data_packager/__init__.py
@@ -1260,7 +1260,17 @@ class GameData(object):
 
         result = FillResult.COMPLETE
 
+        # search first for files that have only one provider,
+        # to avoid extraneous downloads
+        unique_provider = list()
+        multi_provider = list()
         for filename in (package.install | package.optional):
+            if len(self.providers.get(filename)) == 1:
+                unique_provider.append(filename)
+            else:
+                multi_provider.append(filename)
+
+        for filename in unique_provider + multi_provider:
             if filename not in self.found:
                 wanted = self.files[filename]
                 # updates file_status as a side-effect

-- 
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