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

Also, mainfile has been replaced with startfile.
This commit is contained in:
Mitchell Stokes 2016-12-18 11:32:56 -08:00
parent 3ab9bde73d
commit 7bf2b12f09

View File

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