mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 10:22:45 -04:00
deploy-ng: Run egg2bam on egg files
Also adds support for running scripts based on file extensions.
This commit is contained in:
parent
eec5c997c0
commit
c231dd96e4
@ -2,6 +2,7 @@ import collections
|
||||
import os
|
||||
import pip
|
||||
import sys
|
||||
import subprocess
|
||||
import zipfile
|
||||
|
||||
import distutils.command.build
|
||||
@ -31,6 +32,9 @@ class Distribution(distutils.dist.Distribution):
|
||||
self.deploy_platforms = []
|
||||
self.requirements_path = './requirements.txt'
|
||||
self.pypi_extra_indexes = []
|
||||
self.build_scripts= {
|
||||
'.egg': ('.bam', 'egg2bam -o {1} {0}'),
|
||||
}
|
||||
distutils.dist.Distribution.__init__(self, attrs)
|
||||
|
||||
|
||||
@ -206,20 +210,36 @@ class build(distutils.command.build.build):
|
||||
] + list(freezer_modules) + self.distribution.exclude_paths + [i.scriptname for i in self.distribution.applications]
|
||||
|
||||
for copydir in self.distribution.directories:
|
||||
for item in os.listdir(copydir):
|
||||
src = os.path.join(copydir, item)
|
||||
dst = os.path.join(builddir, item)
|
||||
for root, dirs, files in os.walk(copydir):
|
||||
for item in files:
|
||||
src = os.path.join(root, item)
|
||||
dst = os.path.normpath(os.path.join(builddir, root, 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)
|
||||
ext = os.path.splitext(src)[1]
|
||||
dst_root = os.path.splitext(dst)[0]
|
||||
|
||||
if ext in self.distribution.build_scripts:
|
||||
dst_ext, script = self.distribution.build_scripts[ext]
|
||||
dst = dst_root + dst_ext
|
||||
script = script.format(src, dst)
|
||||
print("using script:", script)
|
||||
subprocess.call(script.split())
|
||||
else:
|
||||
#print("Copy file", src, dst)
|
||||
distutils.file_util.copy_file(src, dst)
|
||||
|
||||
for item in dirs[:]:
|
||||
path = os.path.join(builddir, root, item)
|
||||
if item in ignore_copy_list:
|
||||
print("skipping", path)
|
||||
dirs.remove(item)
|
||||
else:
|
||||
print("making directory", path)
|
||||
distutils.dir_util.mkpath(path)
|
||||
|
||||
# Copy extra files
|
||||
for extra in self.distribution.files:
|
||||
|
Loading…
x
Reference in New Issue
Block a user