Преглед на файлове

deploy-ng: Replace game_dir keyword with directories, files, and exclude_paths

Also, mainfile has been replaced with startfile.
Mitchell Stokes преди 9 години
родител
ревизия
7bf2b12f09
променени са 1 файла, в които са добавени 21 реда и са изтрити 21 реда
  1. 21 21
      direct/src/showutil/dist.py

+ 21 - 21
direct/src/showutil/dist.py

@@ -12,10 +12,11 @@ import panda3d.core as p3d
 
 class Distribution(distutils.dist.Distribution):
     def __init__(self, attrs):
-        self.mainfile = 'main.py'
-        self.game_dir = 'game'
+        self.startfile = ''
+        self.directories = []
+        self.files = []
+        self.exclude_paths = []
         self.exclude_modules = []
-        self.extras = []
         distutils.dist.Distribution.__init__(self, attrs)
 
 
@@ -32,12 +33,10 @@ class build(distutils.command.build.build):
             distutils.dir_util.mkpath(builddir)
 
             basename = os.path.abspath(os.path.join(builddir, self.distribution.get_fullname()))
-            gamedir = self.distribution.game_dir
-            startfile = os.path.join(gamedir, self.distribution.mainfile)
 
             # Create runtime
             freezer = FreezeTool.Freezer()
-            freezer.addModule('__main__', filename=startfile)
+            freezer.addModule('__main__', filename=self.distribution.startfile)
             for exmod in self.distribution.exclude_modules:
                 freezer.excludeModule(exmod)
             freezer.done(addStartupModules=True)
@@ -76,26 +75,27 @@ class build(distutils.command.build.build):
             # Copy Game Files
             ignore_copy_list = [
                 '__pycache__',
-                self.distribution.mainfile,
-            ] + freezer.getAllModuleNames()
+                self.distribution.startfile,
+            ] + freezer.getAllModuleNames() + self.distribution.exclude_paths
 
-            for item in os.listdir(gamedir):
-                src = os.path.join(gamedir, item)
-                dst = os.path.join(builddir, item)
+            for copydir in self.distribution.directories:
+                for item in os.listdir(copydir):
+                    src = os.path.join(copydir, item)
+                    dst = os.path.join(builddir, item)
 
-                if item in ignore_copy_list:
-                    print("skipping", src)
-                    continue
+                    if item in ignore_copy_list:
+                        print("skipping", src)
+                        continue
 
-                if os.path.isdir(src):
-                    #print("Copy dir", src, dst)
-                    distutils.dir_util.copy_tree(src, dst)
-                else:
-                    #print("Copy file", src, dst)
-                    distutils.file_util.copy_file(src, dst)
+                    if os.path.isdir(src):
+                        #print("Copy dir", src, dst)
+                        distutils.dir_util.copy_tree(src, dst)
+                    else:
+                        #print("Copy file", src, dst)
+                        distutils.file_util.copy_file(src, dst)
 
             # Copy extra files
-            for extra in self.distribution.extras:
+            for extra in self.distribution.files:
                 if len(extra) == 2:
                     src, dst = extra
                     dst = os.path.join(builddir, dst)