Browse Source

fix problems with packp3d -r

David Rose 16 years ago
parent
commit
ea40f600bb
2 changed files with 13 additions and 12 deletions
  1. 1 1
      direct/src/p3d/AppRunner.py
  2. 12 11
      direct/src/p3d/Packager.py

+ 1 - 1
direct/src/p3d/AppRunner.py

@@ -327,7 +327,7 @@ class AppRunner(DirectObject):
         mapped host, which is the one we should actually download
         from, see getHostWithAlt().  """
 
-        if hostUrl is None:
+        if not hostUrl:
             hostUrl = PandaSystem.getPackageHostUrl()
 
         host = self.hosts.get(hostUrl, None)

+ 12 - 11
direct/src/p3d/Packager.py

@@ -2150,19 +2150,16 @@ class Packager:
         Returns the Package object, or None if the package cannot be
         located. """
 
-        if not platform:
-            platform = self.platform
-
         # Is it a package we already have resident?
-        package = self.packages.get((packageName, platform, version, host), None)
+        package = self.packages.get((packageName, platform or self.platform, version, host), None)
         if package:
             return package
 
         # Look on the searchlist.
         for dirname in self.installSearch.getDirectories():
-            package = self.__scanPackageDir(dirname, packageName, platform, version, host, requires = requires)
+            package = self.__scanPackageDir(dirname, packageName, platform or self.platform, version, host, requires = requires)
             if not package:
-                package = self.__scanPackageDir(dirname, packageName, None, version, host, requires = requires)
+                package = self.__scanPackageDir(dirname, packageName, platform, version, host, requires = requires)
 
             if package:
                 break
@@ -2173,7 +2170,7 @@ class Packager:
 
         if package:
             package = self.packages.setdefault((package.packageName, package.platform, package.version, package.host), package)
-            self.packages[(packageName, platform, version, host)] = package
+            self.packages[(packageName, platform or self.platform, version, host)] = package
             return package
                 
         return None
@@ -2246,6 +2243,10 @@ class Packager:
             return None
 
         host = appRunner.getHost(hostUrl)
+        if not host.readContentsFile():
+            if not host.downloadContentsFile(appRunner.http):
+                return None
+        
         package = host.getPackage(packageName, version, platform = platform)
         if not package and version is None:
             # With no version specified, find the best matching version.
@@ -2403,14 +2404,14 @@ class Packager:
 
         for packageName in names:
             # A special case when requiring the "panda3d" package.  We
-            # supply the version number what we've been compiled with as a
-            # default.
+            # supply the version number which we've been compiled with
+            # as a default.
             pversion = version
             phost = host
             if packageName == 'panda3d':
-                if pversion is None:
+                if not pversion:
                     pversion = PandaSystem.getPackageVersionString()
-                if phost is None:
+                if not phost:
                     phost = PandaSystem.getPackageHostUrl()
 
             package = self.findPackage(packageName, version = pversion, host = phost,