Merge branch 'atys' into fixes
commit
1a49c4cd0b
@ -0,0 +1,594 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief Run all setup processes
|
||||||
|
# \date 2009-02-18 15:28GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Run all setup processes
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# Copyright (C) 2009-2014 by authors
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
||||||
|
sys.path.append("configuration")
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Setup')
|
||||||
|
parser.add_argument('--noconf', '-nc', action='store_true')
|
||||||
|
parser.add_argument('--noverify', '-nv', action='store_true')
|
||||||
|
parser.add_argument('--preset', '-p', action='store_true')
|
||||||
|
# parser.add_argument('--haltonerror', '-eh', action='store_true')
|
||||||
|
parser.add_argument('--includeproject', '-ipj', nargs='+')
|
||||||
|
parser.add_argument('--excludeproject', '-epj', nargs='+')
|
||||||
|
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
||||||
|
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
if not args.includeproject == None and not args.excludeproject == None:
|
||||||
|
print "ERROR --includeproject cannot be combined with --excludeproject, exit."
|
||||||
|
exit()
|
||||||
|
|
||||||
|
if not args.includeprocess == None and not args.excludeprocess == None:
|
||||||
|
print "ERROR --includeprocess cannot be combined with --excludeprocess, exit."
|
||||||
|
exit()
|
||||||
|
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
try:
|
||||||
|
from buildsite import *
|
||||||
|
except ImportError:
|
||||||
|
printLog(log, "*** FIRST RUN ***")
|
||||||
|
if args.noconf:
|
||||||
|
printLog(log, "ERROR --noconf is invalid on first run, exit.")
|
||||||
|
exit()
|
||||||
|
from tools import *
|
||||||
|
|
||||||
|
if not args.noconf:
|
||||||
|
try:
|
||||||
|
BuildQuality
|
||||||
|
except NameError:
|
||||||
|
BuildQuality = 1
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
RemapLocalFrom
|
||||||
|
except NameError:
|
||||||
|
RemapLocalFrom = 'R:'
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
RemapLocalTo
|
||||||
|
except NameError:
|
||||||
|
RemapLocalTo = os.getenv('RC_ROOT').replace('\\', '/')
|
||||||
|
if (not RemapLocalTo) or (not ':' in RemapLocalTo):
|
||||||
|
RemapLocalTo = 'R:'
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
ToolDirectories
|
||||||
|
except NameError:
|
||||||
|
ToolDirectories = [ 'R:/distribution/nel_tools_win_x64', 'R:/distribution/ryzom_tools_win_x64' ]
|
||||||
|
try:
|
||||||
|
ToolSuffix
|
||||||
|
except NameError:
|
||||||
|
ToolSuffix = ".exe"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
ScriptDirectory
|
||||||
|
except NameError:
|
||||||
|
ScriptDirectory = "R:/code/nel/tools/build_gamedata"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
WorkspaceDirectory
|
||||||
|
except NameError:
|
||||||
|
WorkspaceDirectory = "R:/leveldesign/workspace"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
DatabaseDirectory
|
||||||
|
except NameError:
|
||||||
|
DatabaseDirectory = "R:/graphics"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
SoundDirectory
|
||||||
|
except NameError:
|
||||||
|
SoundDirectory = "R:/sound"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
SoundDfnDirectory
|
||||||
|
except NameError:
|
||||||
|
SoundDfnDirectory = "R:/sound/DFN"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
ExportBuildDirectory
|
||||||
|
except NameError:
|
||||||
|
ExportBuildDirectory = "R:/pipeline/export"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
InstallDirectory
|
||||||
|
except NameError:
|
||||||
|
InstallDirectory = "R:/pipeline/install"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
ClientDevDirectory
|
||||||
|
except NameError:
|
||||||
|
ClientDevDirectory = "R:/pipeline/client_dev"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
ClientDevLiveDirectory
|
||||||
|
except NameError:
|
||||||
|
ClientDevLiveDirectory = "R:/pipeline/client_dev_live"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
ClientPatchDirectory
|
||||||
|
except NameError:
|
||||||
|
ClientPatchDirectory = "R:/pipeline/client_patch"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
ClientInstallDirectory
|
||||||
|
except NameError:
|
||||||
|
ClientInstallDirectory = "R:/pipeline/client_install"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
ShardInstallDirectory
|
||||||
|
except NameError:
|
||||||
|
ShardInstallDirectory = "R:/pipeline/shard"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
ShardDevDirectory
|
||||||
|
except NameError:
|
||||||
|
ShardDevDirectory = "R:/pipeline/shard_dev"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
WorldEditInstallDirectory
|
||||||
|
except NameError:
|
||||||
|
WorldEditInstallDirectory = "R:/pipeline/worldedit"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
WorldEditorFilesDirectory
|
||||||
|
except NameError:
|
||||||
|
WorldEditorFilesDirectory = "R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
LeveldesignDirectory
|
||||||
|
except NameError:
|
||||||
|
LeveldesignDirectory = "R:/leveldesign"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
LeveldesignDfnDirectory
|
||||||
|
except NameError:
|
||||||
|
LeveldesignDfnDirectory = "R:/leveldesign/DFN"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
LeveldesignWorldDirectory
|
||||||
|
except NameError:
|
||||||
|
LeveldesignWorldDirectory = "R:/leveldesign/world"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
PrimitivesDirectory
|
||||||
|
except NameError:
|
||||||
|
PrimitivesDirectory = "R:/leveldesign/primitives"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
LeveldesignDataCommonDirectory
|
||||||
|
except NameError:
|
||||||
|
LeveldesignDataCommonDirectory = "R:/leveldesign/common"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
LeveldesignDataShardDirectory
|
||||||
|
except NameError:
|
||||||
|
LeveldesignDataShardDirectory = "R:/leveldesign/shard"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
TranslationDirectory
|
||||||
|
except NameError:
|
||||||
|
TranslationDirectory = "R:/leveldesign/translation"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
GamedevDirectory
|
||||||
|
except NameError:
|
||||||
|
GamedevDirectory = "R:/code/ryzom/client/data/gamedev"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
DataCommonDirectory
|
||||||
|
except NameError:
|
||||||
|
DataCommonDirectory = "R:/code/ryzom/common/data_common"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
DataShardDirectory
|
||||||
|
except NameError:
|
||||||
|
DataShardDirectory = "R:/code/ryzom/server/data_shard"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
WindowsExeDllCfgDirectories
|
||||||
|
except NameError:
|
||||||
|
# TODO: Separate 64bit and 32bit
|
||||||
|
WindowsExeDllCfgDirectories = [ '', 'R:/build/fv_x64/bin/Release', 'R:/distribution/external_x64', 'R:/code/ryzom/client', '', '', '' ]
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
LinuxServiceExecutableDirectory
|
||||||
|
except NameError:
|
||||||
|
LinuxServiceExecutableDirectory = "R:/build/server_gcc/bin"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
LinuxClientExecutableDirectory
|
||||||
|
except NameError:
|
||||||
|
LinuxClientExecutableDirectory = "R:/build/client_gcc/bin"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
PatchmanDevDirectory
|
||||||
|
except NameError:
|
||||||
|
PatchmanDevDirectory = "R:/patchman/terminal_dev"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
PatchmanCfgAdminDirectory
|
||||||
|
except NameError:
|
||||||
|
PatchmanCfgAdminDirectory = "R:/patchman/admin_install"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
PatchmanCfgDefaultDirectory
|
||||||
|
except NameError:
|
||||||
|
PatchmanCfgDefaultDirectory = "R:/patchman/default"
|
||||||
|
try:
|
||||||
|
if args.preset:
|
||||||
|
DummyUnknownName
|
||||||
|
PatchmanBridgeServerDirectory
|
||||||
|
except NameError:
|
||||||
|
PatchmanBridgeServerDirectory = "R:/pipeline/bridge_server"
|
||||||
|
try:
|
||||||
|
SignToolExecutable
|
||||||
|
except NameError:
|
||||||
|
SignToolExecutable = "C:/Program Files/Microsoft SDKs/Windows/v6.0A/Bin/signtool.exe"
|
||||||
|
try:
|
||||||
|
SignToolSha1
|
||||||
|
except NameError:
|
||||||
|
SignToolSha1 = ""
|
||||||
|
try:
|
||||||
|
SignToolTimestamp
|
||||||
|
except NameError:
|
||||||
|
SignToolTimestamp = "http://timestamp.comodoca.com/authenticode"
|
||||||
|
try:
|
||||||
|
MaxAvailable
|
||||||
|
except NameError:
|
||||||
|
MaxAvailable = 1
|
||||||
|
try:
|
||||||
|
MaxDirectory
|
||||||
|
except NameError:
|
||||||
|
MaxDirectory = "C:/Program Files (x86)/Autodesk/3ds Max 2010"
|
||||||
|
try:
|
||||||
|
MaxUserDirectory
|
||||||
|
except NameError:
|
||||||
|
import os
|
||||||
|
try:
|
||||||
|
MaxUserDirectory = os.path.normpath(os.environ["LOCALAPPDATA"] + "/Autodesk/3dsMax/2010 - 32bit/enu")
|
||||||
|
except KeyError:
|
||||||
|
MaxAvailable = 0
|
||||||
|
MaxUserDirectory = "C:/Users/Kaetemi/AppData/Local/Autodesk/3dsMax/2010 - 32bit/enu"
|
||||||
|
try:
|
||||||
|
MaxExecutable
|
||||||
|
except NameError:
|
||||||
|
MaxExecutable = "3dsmax.exe"
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Setup build site")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "This script will set up the buildsite configuration, and create needed directories.")
|
||||||
|
printLog(log, "To use the defaults, simply hit ENTER, else type in the new value.")
|
||||||
|
printLog(log, "Use -- if you need to insert an empty value.")
|
||||||
|
printLog(log, "")
|
||||||
|
BuildQuality = int(askVar(log, "Build Quality", str(BuildQuality)))
|
||||||
|
if not args.preset:
|
||||||
|
ToolDirectories[0] = askVar(log, "[IN] Primary Tool Directory", ToolDirectories[0]).replace("\\", "/")
|
||||||
|
ToolDirectories[1] = askVar(log, "[IN] Secondary Tool Directory", ToolDirectories[1]).replace("\\", "/")
|
||||||
|
ToolSuffix = askVar(log, "Tool Suffix", ToolSuffix)
|
||||||
|
ScriptDirectory = askVar(log, "[IN] Script Directory", os.getcwd().replace("\\", "/")).replace("\\", "/")
|
||||||
|
WorkspaceDirectory = askVar(log, "[IN] Workspace Directory", WorkspaceDirectory).replace("\\", "/")
|
||||||
|
DatabaseDirectory = askVar(log, "[IN] Database Directory", DatabaseDirectory).replace("\\", "/")
|
||||||
|
SoundDirectory = askVar(log, "[IN] Sound Directory", SoundDirectory).replace("\\", "/")
|
||||||
|
SoundDfnDirectory = askVar(log, "[IN] Sound DFN Directory", SoundDfnDirectory).replace("\\", "/")
|
||||||
|
ExportBuildDirectory = askVar(log, "[OUT] Export Build Directory", ExportBuildDirectory).replace("\\", "/")
|
||||||
|
InstallDirectory = askVar(log, "[OUT] Install Directory", InstallDirectory).replace("\\", "/")
|
||||||
|
ClientDevDirectory = askVar(log, "[OUT] Client Dev Directory", ClientDevDirectory).replace("\\", "/")
|
||||||
|
ClientDevLiveDirectory = askVar(log, "[OUT] Client Dev Live Directory", ClientDevLiveDirectory).replace("\\", "/")
|
||||||
|
ClientPatchDirectory = askVar(log, "[OUT] Client Patch Directory", ClientPatchDirectory).replace("\\", "/")
|
||||||
|
ClientInstallDirectory = askVar(log, "[OUT] Client Install Directory", ClientInstallDirectory).replace("\\", "/")
|
||||||
|
ShardInstallDirectory = askVar(log, "[OUT] Shard Data Install Directory", ShardInstallDirectory).replace("\\", "/")
|
||||||
|
ShardDevDirectory = askVar(log, "[OUT] Shard Dev Directory", ShardDevDirectory).replace("\\", "/")
|
||||||
|
WorldEditInstallDirectory = askVar(log, "[OUT] World Edit Data Install Directory", WorldEditInstallDirectory).replace("\\", "/")
|
||||||
|
LeveldesignDirectory = askVar(log, "[IN] Leveldesign Directory", LeveldesignDirectory).replace("\\", "/")
|
||||||
|
LeveldesignDfnDirectory = askVar(log, "[IN] Leveldesign DFN Directory", LeveldesignDfnDirectory).replace("\\", "/")
|
||||||
|
LeveldesignWorldDirectory = askVar(log, "[IN] Leveldesign World Directory", LeveldesignWorldDirectory).replace("\\", "/")
|
||||||
|
PrimitivesDirectory = askVar(log, "[IN] Primitives Directory", PrimitivesDirectory).replace("\\", "/")
|
||||||
|
GamedevDirectory = askVar(log, "[IN] Gamedev Directory", GamedevDirectory).replace("\\", "/")
|
||||||
|
DataShardDirectory = askVar(log, "[IN] Data Shard Directory", DataShardDirectory).replace("\\", "/")
|
||||||
|
DataCommonDirectory = askVar(log, "[IN] Data Common Directory", DataCommonDirectory).replace("\\", "/")
|
||||||
|
TranslationDirectory = askVar(log, "[IN] Translation Directory", TranslationDirectory).replace("\\", "/")
|
||||||
|
LeveldesignDataShardDirectory = askVar(log, "[IN] Leveldesign Data Shard Directory", LeveldesignDataShardDirectory).replace("\\", "/")
|
||||||
|
LeveldesignDataCommonDirectory = askVar(log, "[IN] Leveldesign Data Common Directory", LeveldesignDataCommonDirectory).replace("\\", "/")
|
||||||
|
WorldEditorFilesDirectory = askVar(log, "[IN] World Editor Files Directory", WorldEditorFilesDirectory).replace("\\", "/")
|
||||||
|
WindowsExeDllCfgDirectories[0] = askVar(log, "[IN] Primary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[0]).replace("\\", "/")
|
||||||
|
WindowsExeDllCfgDirectories[1] = askVar(log, "[IN] Secondary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[1]).replace("\\", "/")
|
||||||
|
WindowsExeDllCfgDirectories[2] = askVar(log, "[IN] Tertiary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[2]).replace("\\", "/")
|
||||||
|
WindowsExeDllCfgDirectories[3] = askVar(log, "[IN] Quaternary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[3]).replace("\\", "/")
|
||||||
|
WindowsExeDllCfgDirectories[4] = askVar(log, "[IN] Quinary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[4]).replace("\\", "/")
|
||||||
|
WindowsExeDllCfgDirectories[5] = askVar(log, "[IN] Senary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[5]).replace("\\", "/")
|
||||||
|
WindowsExeDllCfgDirectories[6] = askVar(log, "[IN] Septenary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[6]).replace("\\", "/")
|
||||||
|
LinuxServiceExecutableDirectory = askVar(log, "[IN] Linux Service Executable Directory", LinuxServiceExecutableDirectory).replace("\\", "/")
|
||||||
|
LinuxClientExecutableDirectory = askVar(log, "[IN] Linux Client Executable Directory", LinuxClientExecutableDirectory).replace("\\", "/")
|
||||||
|
PatchmanDevDirectory = askVar(log, "[IN] Patchman Directory", PatchmanDevDirectory).replace("\\", "/")
|
||||||
|
PatchmanCfgAdminDirectory = askVar(log, "[IN] Patchman Cfg Admin Directory", PatchmanCfgAdminDirectory).replace("\\", "/")
|
||||||
|
PatchmanCfgDefaultDirectory = askVar(log, "[IN] Patchman Cfg Default Directory", PatchmanCfgDefaultDirectory).replace("\\", "/")
|
||||||
|
PatchmanBridgeServerDirectory = askVar(log, "[OUT] Patchman Bridge Server Patch Directory", PatchmanBridgeServerDirectory).replace("\\", "/")
|
||||||
|
SignToolExecutable = askVar(log, "Sign Tool Executable", SignToolExecutable).replace("\\", "/")
|
||||||
|
SignToolSha1 = askVar(log, "Sign Tool Signature SHA1", SignToolSha1)
|
||||||
|
SignToolTimestamp = askVar(log, "Sign Tool Timestamp Authority", SignToolTimestamp)
|
||||||
|
MaxAvailable = int(askVar(log, "3dsMax Available", str(MaxAvailable)))
|
||||||
|
if MaxAvailable:
|
||||||
|
MaxDirectory = askVar(log, "3dsMax Directory", MaxDirectory).replace("\\", "/")
|
||||||
|
MaxUserDirectory = askVar(log, "3dsMax User Directory", MaxUserDirectory).replace("\\", "/")
|
||||||
|
MaxExecutable = askVar(log, "3dsMax Executable", MaxExecutable)
|
||||||
|
if os.path.isfile("configuration/buildsite.py"):
|
||||||
|
os.remove("configuration/buildsite.py")
|
||||||
|
sf = open("configuration/buildsite.py", "w")
|
||||||
|
sf.write("#!/usr/bin/python\n")
|
||||||
|
sf.write("# \n")
|
||||||
|
sf.write("# \\file site.py\n")
|
||||||
|
sf.write("# \\brief Site configuration\n")
|
||||||
|
sf.write("# \\date " + time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "\n")
|
||||||
|
sf.write("# \\author Jan Boon (Kaetemi)\n")
|
||||||
|
sf.write("# Python port of game data build pipeline.\n")
|
||||||
|
sf.write("# Site configuration.\n")
|
||||||
|
sf.write("# \n")
|
||||||
|
sf.write("# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>\n")
|
||||||
|
sf.write("# Copyright (C) 2009-2014 by authors\n")
|
||||||
|
sf.write("# \n")
|
||||||
|
sf.write("# This program is free software: you can redistribute it and/or modify\n")
|
||||||
|
sf.write("# it under the terms of the GNU Affero General Public License as\n")
|
||||||
|
sf.write("# published by the Free Software Foundation, either version 3 of the\n")
|
||||||
|
sf.write("# License, or (at your option) any later version.\n")
|
||||||
|
sf.write("# \n")
|
||||||
|
sf.write("# This program is distributed in the hope that it will be useful,\n")
|
||||||
|
sf.write("# but WITHOUT ANY WARRANTY; without even the implied warranty of\n")
|
||||||
|
sf.write("# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n")
|
||||||
|
sf.write("# GNU Affero General Public License for more details.\n")
|
||||||
|
sf.write("# \n")
|
||||||
|
sf.write("# You should have received a copy of the GNU Affero General Public License\n")
|
||||||
|
sf.write("# along with this program. If not, see <http://www.gnu.org/licenses/>.\n")
|
||||||
|
sf.write("# \n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("# *** SITE INSTALLATION ***\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("# Use '/' in path name, not '\'\n")
|
||||||
|
sf.write("# Don't put '/' at the end of a directory name\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("# Quality option for this site (1 for BEST, 0 for DRAFT)\n")
|
||||||
|
sf.write("BuildQuality = " + str(BuildQuality) + "\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("RemapLocalFrom = \"" + str(RemapLocalFrom) + "\"\n")
|
||||||
|
sf.write("RemapLocalTo = \"" + str(RemapLocalTo) + "\"\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("ToolDirectories = " + str(ToolDirectories) + "\n")
|
||||||
|
sf.write("ToolSuffix = \"" + str(ToolSuffix) + "\"\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("# Build script directory\n")
|
||||||
|
sf.write("ScriptDirectory = \"" + str(ScriptDirectory) + "\"\n")
|
||||||
|
sf.write("WorkspaceDirectory = \"" + str(WorkspaceDirectory) + "\"\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("# Data build directories\n")
|
||||||
|
sf.write("DatabaseDirectory = \"" + str(DatabaseDirectory) + "\"\n")
|
||||||
|
sf.write("SoundDirectory = \"" + str(SoundDirectory) + "\"\n")
|
||||||
|
sf.write("SoundDfnDirectory = \"" + str(SoundDfnDirectory) + "\"\n")
|
||||||
|
sf.write("ExportBuildDirectory = \"" + str(ExportBuildDirectory) + "\"\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("# Install directories\n")
|
||||||
|
sf.write("InstallDirectory = \"" + str(InstallDirectory) + "\"\n")
|
||||||
|
sf.write("ClientDevDirectory = \"" + str(ClientDevDirectory) + "\"\n")
|
||||||
|
sf.write("ClientDevLiveDirectory = \"" + str(ClientDevLiveDirectory) + "\"\n")
|
||||||
|
sf.write("ClientPatchDirectory = \"" + str(ClientPatchDirectory) + "\"\n")
|
||||||
|
sf.write("ClientInstallDirectory = \"" + str(ClientInstallDirectory) + "\"\n")
|
||||||
|
sf.write("ShardInstallDirectory = \"" + str(ShardInstallDirectory) + "\"\n")
|
||||||
|
sf.write("ShardDevDirectory = \"" + str(ShardDevDirectory) + "\"\n")
|
||||||
|
sf.write("WorldEditInstallDirectory = \"" + str(WorldEditInstallDirectory) + "\"\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("# Utility directories\n")
|
||||||
|
sf.write("WorldEditorFilesDirectory = \"" + str(WorldEditorFilesDirectory) + "\"\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("# Leveldesign directories\n")
|
||||||
|
sf.write("LeveldesignDirectory = \"" + str(LeveldesignDirectory) + "\"\n")
|
||||||
|
sf.write("LeveldesignDfnDirectory = \"" + str(LeveldesignDfnDirectory) + "\"\n")
|
||||||
|
sf.write("LeveldesignWorldDirectory = \"" + str(LeveldesignWorldDirectory) + "\"\n")
|
||||||
|
sf.write("PrimitivesDirectory = \"" + str(PrimitivesDirectory) + "\"\n")
|
||||||
|
sf.write("LeveldesignDataCommonDirectory = \"" + str(LeveldesignDataCommonDirectory) + "\"\n")
|
||||||
|
sf.write("LeveldesignDataShardDirectory = \"" + str(LeveldesignDataShardDirectory) + "\"\n")
|
||||||
|
sf.write("TranslationDirectory = \"" + str(TranslationDirectory) + "\"\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("# Misc data directories\n")
|
||||||
|
sf.write("GamedevDirectory = \"" + str(GamedevDirectory) + "\"\n")
|
||||||
|
sf.write("DataCommonDirectory = \"" + str(DataCommonDirectory) + "\"\n")
|
||||||
|
sf.write("DataShardDirectory = \"" + str(DataShardDirectory) + "\"\n")
|
||||||
|
sf.write("WindowsExeDllCfgDirectories = " + str(WindowsExeDllCfgDirectories) + "\n")
|
||||||
|
sf.write("LinuxServiceExecutableDirectory = \"" + str(LinuxServiceExecutableDirectory) + "\"\n")
|
||||||
|
sf.write("LinuxClientExecutableDirectory = \"" + str(LinuxClientExecutableDirectory) + "\"\n")
|
||||||
|
sf.write("PatchmanDevDirectory = \"" + str(PatchmanDevDirectory) + "\"\n")
|
||||||
|
sf.write("PatchmanCfgAdminDirectory = \"" + str(PatchmanCfgAdminDirectory) + "\"\n")
|
||||||
|
sf.write("PatchmanCfgDefaultDirectory = \"" + str(PatchmanCfgDefaultDirectory) + "\"\n")
|
||||||
|
sf.write("PatchmanBridgeServerDirectory = \"" + str(PatchmanBridgeServerDirectory) + "\"\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("# Sign tool\n")
|
||||||
|
sf.write("SignToolExecutable = \"" + str(SignToolExecutable) + "\"\n")
|
||||||
|
sf.write("SignToolSha1 = \"" + str(SignToolSha1) + "\"\n")
|
||||||
|
sf.write("SignToolTimestamp = \"" + str(SignToolTimestamp) + "\"\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("# 3dsMax directives\n")
|
||||||
|
sf.write("MaxAvailable = " + str(MaxAvailable) + "\n")
|
||||||
|
sf.write("MaxDirectory = \"" + str(MaxDirectory) + "\"\n")
|
||||||
|
sf.write("MaxUserDirectory = \"" + str(MaxUserDirectory) + "\"\n")
|
||||||
|
sf.write("MaxExecutable = \"" + str(MaxExecutable) + "\"\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("# end of file\n")
|
||||||
|
sf.flush()
|
||||||
|
sf.close()
|
||||||
|
sf = open("configuration/buildsite_local.py", "w")
|
||||||
|
sfr = open("configuration/buildsite.py", "r")
|
||||||
|
for l in sfr:
|
||||||
|
sf.write(l.replace(RemapLocalFrom + '/', RemapLocalTo + '/'))
|
||||||
|
sf.flush()
|
||||||
|
sfr.close()
|
||||||
|
sf.close()
|
||||||
|
|
||||||
|
from buildsite_local import *
|
||||||
|
|
||||||
|
sys.path.append(WorkspaceDirectory)
|
||||||
|
from projects import *
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Run the setup projects")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
# For each project
|
||||||
|
for projectName in ProjectsToProcess:
|
||||||
|
if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)):
|
||||||
|
printLog(log, "PROJECT " + projectName)
|
||||||
|
os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName))
|
||||||
|
os.chdir("processes")
|
||||||
|
try:
|
||||||
|
if not args.includeprocess == None:
|
||||||
|
subprocess.call([ "python", "0_setup.py", "--includeprocess" ] + args.includeprocess)
|
||||||
|
elif not args.excludeprocess == None:
|
||||||
|
subprocess.call([ "python", "0_setup.py", "--excludeprocess" ] + args.excludeprocess)
|
||||||
|
else:
|
||||||
|
subprocess.call([ "python", "0_setup.py" ])
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "<" + projectName + "> " + str(e))
|
||||||
|
os.chdir("..")
|
||||||
|
try:
|
||||||
|
projectLog = open("processes/log.log", "r")
|
||||||
|
projectLogData = projectLog.read()
|
||||||
|
projectLog.close()
|
||||||
|
log.write(projectLogData)
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "<" + projectName + "> " + str(e))
|
||||||
|
else:
|
||||||
|
printLog(log, "IGNORE PROJECT " + projectName)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Additional directories
|
||||||
|
printLog(log, ">>> Setup additional directories <<<")
|
||||||
|
mkPath(log, ClientDevDirectory)
|
||||||
|
mkPath(log, ClientDevLiveDirectory)
|
||||||
|
mkPath(log, ClientPatchDirectory)
|
||||||
|
mkPath(log, ClientInstallDirectory)
|
||||||
|
|
||||||
|
if not args.noverify:
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Verify tool paths")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
if MaxAvailable:
|
||||||
|
findMax(log, MaxDirectory, MaxExecutable)
|
||||||
|
findTool(log, ToolDirectories, TgaToDdsTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, BuildInterfaceTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, BuildSmallbankTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, BuildFarbankTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, ZoneDependenciesTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, ZoneWelderTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, ZoneElevationTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, BuildRbankTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, BuildIndoorRbankTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, BuildIgBoxesTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, GetNeighborsTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, ZoneLighterTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, ZoneIgLighterTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, IgLighterTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, AnimBuilderTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, TileEditTool, ToolSuffix)
|
||||||
|
# findTool(log, ToolDirectories, BuildImagesetTool, ToolSuffix) # kaetemi stuff, ignore this
|
||||||
|
findTool(log, ToolDirectories, MakeSheetIdTool, ToolSuffix)
|
||||||
|
# findTool(log, ToolDirectories, BuildSheetsTool, ToolSuffix) # kaetemi stuff, ignore this
|
||||||
|
# findTool(log, ToolDirectories, BuildSoundTool, ToolSuffix) # kaetemi stuff, ignore this
|
||||||
|
# findTool(log, ToolDirectories, BuildSoundTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, BuildSoundbankTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, BuildSamplebankTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, BuildCoarseMeshTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, LightmapOptimizerTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, BuildClodtexTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, BuildShadowSkinTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, PanoplyMakerTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, HlsBankMakerTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, LandExportTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, PrimExportTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, IgElevationTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, IgAddTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, BuildClodBankTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, SheetsPackerTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, BnpMakeTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, AiBuildWmapTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, TgaCutTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, PatchGenTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, TranslationToolsTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, BuildWorldPackedColTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, R2IslandsTexturesTool, ToolSuffix)
|
||||||
|
findTool(log, ToolDirectories, PatchmanServiceTool, ToolSuffix)
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
if os.path.isfile("0_setup.log"):
|
||||||
|
os.remove("0_setup.log")
|
||||||
|
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_setup.log")
|
||||||
|
shutil.move("log.log", "0_setup.log")
|
@ -0,0 +1,108 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file b1_client_dev.py
|
||||||
|
# \brief Install to client dev
|
||||||
|
# \date 2009-02-18 16:19GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install to client dev
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# Copyright (C) 2009-2014 by authors
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util, socket
|
||||||
|
sys.path.append("configuration")
|
||||||
|
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite_local import *
|
||||||
|
from tools import *
|
||||||
|
|
||||||
|
sys.path.append(WorkspaceDirectory)
|
||||||
|
from projects import *
|
||||||
|
|
||||||
|
# Log error
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Install to client dev")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
mkPath(log, ClientDevLiveDirectory)
|
||||||
|
if not os.path.isfile(ClientDevLiveDirectory + "/client.cfg"):
|
||||||
|
printLog(log, ">>> Generate live dev client.cfg <<<")
|
||||||
|
cfg = open(ClientDevLiveDirectory + "/client.cfg", "w")
|
||||||
|
cfg.write("RootConfigFilename = \"client_default.cfg\";\n")
|
||||||
|
cfg.write("PreDataPath = {\n")
|
||||||
|
cfg.write("\t\"user\", \"patch\", \"" + DataCommonDirectory + "\", \"" + GamedevDirectory + "\", \"" + LeveldesignDirectory + "/translation/translated\", \"" + InstallDirectory + "\", \"data\", \"examples\" \n")
|
||||||
|
cfg.write("};\n")
|
||||||
|
cfg.write("PreLoadPath = \"" + InstallDirectory + "\";\n")
|
||||||
|
cfg.write("PatchWanted = 0;\n")
|
||||||
|
cfg.write("DisplayLuaDebugInfo = 1;\n")
|
||||||
|
cfg.write("AllowDebugLua = 1;\n")
|
||||||
|
cfg.write("FullScreen = 0;\n")
|
||||||
|
cfg.flush()
|
||||||
|
cfg.close()
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
mkPath(log, ClientDevDirectory)
|
||||||
|
if not os.path.isfile(ClientDevDirectory + "/client.cfg"):
|
||||||
|
printLog(log, ">>> Generate local dev client.cfg <<<")
|
||||||
|
cfg = open(ClientDevDirectory + "/client.cfg", "w")
|
||||||
|
cfgr = open(ClientDevLiveDirectory + "/client.cfg", "r")
|
||||||
|
for l in cfgr:
|
||||||
|
cfg.write(l)
|
||||||
|
cfgr.close()
|
||||||
|
cfg.write("StartupHost = \"http://" + socket.gethostname() + ":9042\";\n")
|
||||||
|
cfg.write("Application = {\n")
|
||||||
|
cfg.write(" \"dev\", \"./client_ryzom_r.exe\", \"./\" \n")
|
||||||
|
cfg.write("};\n")
|
||||||
|
cfg.flush()
|
||||||
|
cfg.close()
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, ">>> Install data <<<")
|
||||||
|
for category in InstallClientData:
|
||||||
|
if (category["UnpackTo"] != None):
|
||||||
|
printLog(log, "CATEGORY " + category["Name"])
|
||||||
|
targetPath = ClientDevDirectory
|
||||||
|
targetPathLive = ClientDevLiveDirectory
|
||||||
|
if (category["UnpackTo"] != ""):
|
||||||
|
targetPath += "/" + category["UnpackTo"]
|
||||||
|
targetPathLive += "/" + category["UnpackTo"]
|
||||||
|
mkPath(log, targetPath)
|
||||||
|
mkPath(log, targetPathLive)
|
||||||
|
for package in category["Packages"]:
|
||||||
|
printLog(log, "PACKAGE " + package[0])
|
||||||
|
mkPath(log, InstallDirectory + "/" + package[0])
|
||||||
|
if "exedll" in package[0]:
|
||||||
|
if package[0] == "exedll": # or package[0] == platformExeDll # TODO: 64-bit and Linux separation of exedll, only include one
|
||||||
|
copyFileIfNeeded(log, InstallDirectory + "/" + package[0] + "/client_default.cfg", targetPath)
|
||||||
|
copyFileIfNeeded(log, InstallDirectory + "/" + package[0] + "/client_default.cfg", targetPathLive)
|
||||||
|
else:
|
||||||
|
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + package[0], targetPath)
|
||||||
|
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + package[0], targetPathLive)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
if os.path.isfile("b1_client_dev.log"):
|
||||||
|
os.remove("b1_client_dev.log")
|
||||||
|
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_client_dev.log")
|
||||||
|
shutil.move("log.log", "b1_client_dev.log")
|
@ -0,0 +1,123 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file c1_shard_patch.py
|
||||||
|
# \brief Create a new patch for the patchman bridge
|
||||||
|
# \date 2014-02-20 00:27GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Create a new patch for the patchman bridge
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://www.ryzomcore.org/>
|
||||||
|
# Copyright (C) 2014 by authors
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util, tarfile, argparse
|
||||||
|
sys.path.append("configuration")
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Shard Patch')
|
||||||
|
parser.add_argument('--admininstall', '-ai', action='store_true')
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite_local import *
|
||||||
|
from tools import *
|
||||||
|
|
||||||
|
sys.path.append(WorkspaceDirectory)
|
||||||
|
from projects import *
|
||||||
|
|
||||||
|
# Log error
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Create a new patch for the patchman bridge")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
SevenZip = findTool(log, ToolDirectories, SevenZipTool, ToolSuffix)
|
||||||
|
|
||||||
|
# List the directories that will be used
|
||||||
|
archiveDirectories = [ ]
|
||||||
|
for dir in InstallShardDataDirectories:
|
||||||
|
if not dir in archiveDirectories:
|
||||||
|
archiveDirectories += [ dir ]
|
||||||
|
for package in InstallShardDataFiles:
|
||||||
|
dstDir = package[0]
|
||||||
|
if not dstDir in archiveDirectories:
|
||||||
|
archiveDirectories += [ dstDir ]
|
||||||
|
for multiDir in InstallShardDataMultiDirectories:
|
||||||
|
dstDir = multiDir[0]
|
||||||
|
if not dstDir in archiveDirectories:
|
||||||
|
archiveDirectories += [ dstDir ]
|
||||||
|
for multiDir in InstallShardDataPrimitivesDirectories:
|
||||||
|
dstDir = multiDir[0]
|
||||||
|
if not dstDir in archiveDirectories:
|
||||||
|
archiveDirectories += [ dstDir ]
|
||||||
|
for execDir in InstallShardDataExecutables:
|
||||||
|
dstDir = execDir[0]
|
||||||
|
if not dstDir in archiveDirectories:
|
||||||
|
archiveDirectories += [ dstDir ]
|
||||||
|
|
||||||
|
printLog(log, ">>> Archive new admin_install.tgz <<<")
|
||||||
|
mkPath(log, PatchmanBridgeServerDirectory)
|
||||||
|
adminInstallTgz = PatchmanBridgeServerDirectory + "/admin_install.tgz"
|
||||||
|
patchmanExecutable = LinuxServiceExecutableDirectory + "/ryzom_patchman_service"
|
||||||
|
if needUpdateDirNoSubdirFile(log, PatchmanCfgAdminDirectory + "/bin", adminInstallTgz) or needUpdateDirNoSubdirFile(log, PatchmanCfgAdminDirectory + "/patchman", adminInstallTgz) or needUpdate(log, patchmanExecutable, adminInstallTgz):
|
||||||
|
printLog(log, "WRITE " + adminInstallTgz)
|
||||||
|
if os.path.isfile(adminInstallTgz):
|
||||||
|
os.remove(adminInstallTgz)
|
||||||
|
tar = tarfile.open(adminInstallTgz, "w:gz")
|
||||||
|
tar.add(PatchmanCfgAdminDirectory + "/bin", arcname = "bin")
|
||||||
|
tar.add(PatchmanCfgAdminDirectory + "/patchman", arcname = "patchman")
|
||||||
|
tar.add(patchmanExecutable, arcname = "patchman/ryzom_patchman_service")
|
||||||
|
tar.close()
|
||||||
|
else:
|
||||||
|
printLog(log, "SKIP " + adminInstallTgz)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
if not args.admininstall:
|
||||||
|
if SevenZip == "":
|
||||||
|
toolLogFail(log, SevenZipTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
printLog(log, ">>> Create new version <<<")
|
||||||
|
newVersion = 1
|
||||||
|
vstr = str(newVersion).zfill(6)
|
||||||
|
vpath = PatchmanBridgeServerDirectory + "/" + vstr
|
||||||
|
while os.path.exists(vpath):
|
||||||
|
newVersion = newVersion + 1
|
||||||
|
vstr = str(newVersion).zfill(6)
|
||||||
|
vpath = PatchmanBridgeServerDirectory + "/" + vstr
|
||||||
|
mkPath(log, vpath)
|
||||||
|
for dir in archiveDirectories:
|
||||||
|
mkPath(log, ShardInstallDirectory + "/" + dir)
|
||||||
|
# tgzPath = vpath + "/" + dir + ".tgz"
|
||||||
|
# printLog(log, "WRITE " + tgzPath)
|
||||||
|
# tar = tarfile.open(tgzPath, "w:gz")
|
||||||
|
# tar.add(ShardInstallDirectory + "/" + dir, arcname = dir)
|
||||||
|
# tar.close()
|
||||||
|
sevenZipPath = vpath + "/" + dir + ".7z"
|
||||||
|
printLog(log, "WRITE " + sevenZipPath)
|
||||||
|
subprocess.call([ SevenZip, "a", sevenZipPath, ShardInstallDirectory + "/" + dir ])
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
if os.path.isfile("c1_shard_patch.log"):
|
||||||
|
os.remove("c1_shard_patch.log")
|
||||||
|
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_shard_patch.log")
|
||||||
|
shutil.move("log.log", "c1_shard_patch.log")
|
@ -0,0 +1,610 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file export.py
|
||||||
|
# \brief Useful scripts
|
||||||
|
# \date 2009-02-18 09:22GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Useful scripts
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# Copyright (C) 2009-2014 by authors
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util, multiprocessing, math
|
||||||
|
|
||||||
|
ActiveProjectDirectory = os.getenv("NELBUILDACTIVEPROJECT", "configuration/project")
|
||||||
|
sys.path.append(ActiveProjectDirectory)
|
||||||
|
|
||||||
|
def printLog(log, text):
|
||||||
|
log.write(text + "\n")
|
||||||
|
print text
|
||||||
|
|
||||||
|
pendingProcesses = []
|
||||||
|
processLimit = math.ceil(multiprocessing.cpu_count() * 0.75)
|
||||||
|
|
||||||
|
def callParallelProcess(command):
|
||||||
|
res = 0
|
||||||
|
if len(pendingProcesses) >= processLimit:
|
||||||
|
waitingProc = pendingProcesses.pop(0)
|
||||||
|
res = waitingProc.wait()
|
||||||
|
proc = subprocess.Popen(command)
|
||||||
|
pendingProcesses.append(proc)
|
||||||
|
return res
|
||||||
|
|
||||||
|
def flushParallelProcesses():
|
||||||
|
res = 0
|
||||||
|
while (len(pendingProcesses) > 0):
|
||||||
|
waitingProc = pendingProcesses.pop(0)
|
||||||
|
procRes = waitingProc.wait()
|
||||||
|
if procRes != 0:
|
||||||
|
res = procRes
|
||||||
|
return res
|
||||||
|
|
||||||
|
def mkPath(log, path):
|
||||||
|
printLog(log, "DIR " + path)
|
||||||
|
distutils.dir_util.mkpath(path)
|
||||||
|
|
||||||
|
def needUpdate(log, source, dest):
|
||||||
|
if (os.path.isfile(source)):
|
||||||
|
if (os.path.isfile(dest)):
|
||||||
|
if (os.stat(source).st_mtime > os.stat(dest).st_mtime):
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
return 0
|
||||||
|
return 1
|
||||||
|
printLog(log, "MISSING " + source)
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def needUpdateRemoveDest(log, source, dest):
|
||||||
|
if (os.path.isfile(source)):
|
||||||
|
if (os.path.isfile(dest)):
|
||||||
|
if (os.stat(source).st_mtime > os.stat(dest).st_mtime):
|
||||||
|
os.remove(dest)
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
return 0
|
||||||
|
return 1
|
||||||
|
printLog(log, "MISSING " + source)
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def needUpdateLogRemoveDest(log, source, dest):
|
||||||
|
if (os.path.isfile(source)):
|
||||||
|
if (os.path.isfile(dest)):
|
||||||
|
if (os.stat(source).st_mtime > os.stat(dest).st_mtime):
|
||||||
|
os.remove(dest)
|
||||||
|
printLog(log, source + " -> " + dest)
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
printLog(log, "SKIP " + dest)
|
||||||
|
return 0
|
||||||
|
printLog(log, source + " -> " + dest)
|
||||||
|
return 1
|
||||||
|
printLog(log, "MISSING " + source)
|
||||||
|
printLog(log, "SKIP " + dest)
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def copyFileList(log, dir_source, dir_target, files):
|
||||||
|
for fileName in files:
|
||||||
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
|
if (os.path.isfile(dir_source + "/" + fileName)):
|
||||||
|
if needUpdateLogRemoveDest(log, dir_source + "/" + fileName, dir_target + "/" + fileName):
|
||||||
|
shutil.copy(dir_source + "/" + fileName, dir_target + "/" + fileName)
|
||||||
|
|
||||||
|
def copyFileListLogless(log, dir_source, dir_target, files):
|
||||||
|
for fileName in files:
|
||||||
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
|
if (os.path.isfile(dir_source + "/" + fileName)):
|
||||||
|
if needUpdateRemoveDest(log, dir_source + "/" + fileName, dir_target + "/" + fileName):
|
||||||
|
shutil.copy(dir_source + "/" + fileName, dir_target + "/" + fileName)
|
||||||
|
|
||||||
|
def copyFileListNoTree(log, dir_source, dir_target, files):
|
||||||
|
for fileName in files:
|
||||||
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
|
if (os.path.isfile(dir_source + "/" + fileName)):
|
||||||
|
printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + os.path.basename(fileName))
|
||||||
|
shutil.copy(dir_source + "/" + fileName, dir_target + "/" + os.path.basename(fileName))
|
||||||
|
|
||||||
|
def copyFileListNoTreeIfNeeded(log, dir_source, dir_target, files):
|
||||||
|
for fileName in files:
|
||||||
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
|
if (os.path.isfile(dir_source + "/" + fileName)):
|
||||||
|
srcFile = dir_source + "/" + fileName
|
||||||
|
destFile = dir_target + "/" + os.path.basename(fileName)
|
||||||
|
if needUpdateLogRemoveDest(log, srcFile, destFile):
|
||||||
|
shutil.copy(srcFile, destFile)
|
||||||
|
|
||||||
|
def removeFilesRecursive(log, dir_files):
|
||||||
|
files = os.listdir(dir_files)
|
||||||
|
for fileName in files:
|
||||||
|
if (fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*"):
|
||||||
|
if os.path.isdir(dir_files + "/" + fileName):
|
||||||
|
removeFilesRecursive(log, dir_files + "/" + fileName)
|
||||||
|
else:
|
||||||
|
printLog(log, "RM " + dir_files + "/" + fileName)
|
||||||
|
os.remove(dir_files + "/" + fileName)
|
||||||
|
|
||||||
|
def removeFilesDirsRecursive(log, dir_files):
|
||||||
|
files = os.listdir(dir_files)
|
||||||
|
for fileName in files:
|
||||||
|
if (fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*"):
|
||||||
|
if os.path.isdir(dir_files + "/" + fileName):
|
||||||
|
removeFilesRecursive(log, dir_files + "/" + fileName)
|
||||||
|
else:
|
||||||
|
printLog(log, "RM " + dir_files + "/" + fileName)
|
||||||
|
os.remove(dir_files + "/" + fileName)
|
||||||
|
printLog(log, "RMDIR " + dir_files)
|
||||||
|
os.rmdir(dir_files)
|
||||||
|
|
||||||
|
def removeFilesRecursiveExt(log, dir_files, file_ext):
|
||||||
|
files = os.listdir(dir_files)
|
||||||
|
len_file_ext = len(file_ext)
|
||||||
|
for fileName in files:
|
||||||
|
if (fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*"):
|
||||||
|
if os.path.isdir(dir_files + "/" + fileName):
|
||||||
|
removeFilesRecursiveExt(log, dir_files + "/" + fileName, file_ext)
|
||||||
|
elif (fileName[-len_file_ext:].lower() == file_ext.lower()):
|
||||||
|
printLog(log, "RM " + dir_files + "/" + fileName)
|
||||||
|
os.remove(dir_files + "/" + fileName)
|
||||||
|
|
||||||
|
def copyFilesRecursive(log, dir_source, dir_target):
|
||||||
|
files = os.listdir(dir_source)
|
||||||
|
mkPath(log, dir_target)
|
||||||
|
for fileName in files:
|
||||||
|
if (fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*"):
|
||||||
|
if os.path.isdir(dir_source + "/" + fileName):
|
||||||
|
copyFilesRecursive(log, dir_source + "/" + fileName, dir_target + "/" + fileName)
|
||||||
|
else:
|
||||||
|
printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + fileName)
|
||||||
|
shutil.copy(dir_source + "/" + fileName, dir_target + "/" + fileName)
|
||||||
|
|
||||||
|
def copyFiles(log, dir_source, dir_target):
|
||||||
|
copyFileList(log, dir_source, dir_target, os.listdir(dir_source))
|
||||||
|
|
||||||
|
def copyFilesLogless(log, dir_source, dir_target):
|
||||||
|
copyFileListLogless(log, dir_source, dir_target, os.listdir(dir_source))
|
||||||
|
|
||||||
|
def copyFilesExt(log, dir_source, dir_target, file_ext):
|
||||||
|
files = os.listdir(dir_source)
|
||||||
|
len_file_ext = len(file_ext)
|
||||||
|
for fileName in files:
|
||||||
|
if (fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*") and (fileName[-len_file_ext:].lower() == file_ext.lower()):
|
||||||
|
if (os.path.isfile(dir_source + "/" + fileName)):
|
||||||
|
printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + fileName)
|
||||||
|
shutil.copy(dir_source + "/" + fileName, dir_target + "/" + fileName)
|
||||||
|
|
||||||
|
def copyFilesRenamePrefixExt(log, dir_source, dir_target, old_prefix, new_prefix, file_ext):
|
||||||
|
files = os.listdir(dir_source)
|
||||||
|
len_file_ext = len(file_ext)
|
||||||
|
len_prefix = len(old_prefix)
|
||||||
|
for fileName in files:
|
||||||
|
if (fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*") and (fileName[-len_file_ext:].lower() == file_ext.lower()) and ((fileName[:len_prefix].lower() == old_prefix.lower())):
|
||||||
|
if (os.path.isfile(dir_source + "/" + fileName)):
|
||||||
|
printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + new_prefix + fileName[-(len(fileName) - len_prefix):])
|
||||||
|
shutil.copy(dir_source + "/" + fileName, dir_target + "/" + new_prefix + fileName[-(len(fileName) - len_prefix):])
|
||||||
|
|
||||||
|
def copyFilesExtNoSubdir(log, dir_source, dir_target, file_ext):
|
||||||
|
files = findFilesNoSubdir(log, dir_source, file_ext)
|
||||||
|
copyFileListNoTree(log, dir_source, dir_target, files)
|
||||||
|
|
||||||
|
def copyFilesExtNoTree(log, dir_source, dir_target, file_ext):
|
||||||
|
files = findFiles(log, dir_source, "", file_ext)
|
||||||
|
copyFileListNoTree(log, dir_source, dir_target, files)
|
||||||
|
|
||||||
|
def copyFilesExtNoTreeIfNeeded(log, dir_source, dir_target, file_ext):
|
||||||
|
files = findFiles(log, dir_source, "", file_ext)
|
||||||
|
copyFileListNoTreeIfNeeded(log, dir_source, dir_target, files)
|
||||||
|
|
||||||
|
def copyFilesExtNoSubdirIfNeeded(log, dir_source, dir_target, file_ext):
|
||||||
|
files = findFilesNoSubdir(log, dir_source, file_ext)
|
||||||
|
copyFileListNoTreeIfNeeded(log, dir_source, dir_target, files)
|
||||||
|
|
||||||
|
def copyFilesNoTreeIfNeeded(log, dir_source, dir_target):
|
||||||
|
copyFileListNoTreeIfNeeded(log, dir_source, dir_target, os.listdir(dir_source))
|
||||||
|
|
||||||
|
def copyFilesRecursiveNoTreeIfNeeded(log, dir_source, dir_target):
|
||||||
|
files = findFilesRecursive(log, dir_source, "")
|
||||||
|
copyFileListNoTreeIfNeeded(log, dir_source, dir_target, files)
|
||||||
|
|
||||||
|
def copyFileListExtReplaceNoTreeIfNeeded(log, dir_source, dir_target, files, file_ext, target_ext):
|
||||||
|
for fileName in files:
|
||||||
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
|
if (os.path.isfile(dir_source + "/" + fileName)):
|
||||||
|
srcFile = dir_source + "/" + fileName
|
||||||
|
destFile = dir_target + "/" + os.path.basename(fileName)[0:-len(file_ext)] + target_ext
|
||||||
|
if needUpdateLogRemoveDest(log, srcFile, destFile):
|
||||||
|
shutil.copy(srcFile, destFile)
|
||||||
|
|
||||||
|
def copyFilesExtReplaceNoTreeIfNeeded(log, dir_source, dir_target, file_ext, target_ext):
|
||||||
|
files = findFiles(log, dir_source, "", file_ext)
|
||||||
|
copyFileListExtReplaceNoTreeIfNeeded(log, dir_source, dir_target, files, file_ext, target_ext)
|
||||||
|
|
||||||
|
def copyFileIfNeeded(log, srcFile, destFile):
|
||||||
|
if needUpdateLogRemoveDest(log, srcFile, destFile):
|
||||||
|
shutil.copy(srcFile, destFile)
|
||||||
|
|
||||||
|
def moveFileListNoTree(log, dir_source, dir_target, files):
|
||||||
|
for fileName in files:
|
||||||
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
|
if (os.path.isfile(dir_source + "/" + fileName)):
|
||||||
|
printLog(log, "MOVE " + dir_source + "/" + fileName + " -> " + dir_target + "/" + os.path.basename(fileName))
|
||||||
|
shutil.move(dir_source + "/" + fileName, dir_target + "/" + os.path.basename(fileName))
|
||||||
|
|
||||||
|
def moveFilesExtNoTree(log, dir_source, dir_target, file_ext):
|
||||||
|
files = findFiles(log, dir_source, "", file_ext)
|
||||||
|
moveFileListNoTree(log, dir_source, dir_target, files)
|
||||||
|
|
||||||
|
def moveFilesNoSubdir(log, dir_source, dir_target):
|
||||||
|
files = os.listdir(dir_source)
|
||||||
|
moveFileListNoTree(log, dir_source, dir_target, files)
|
||||||
|
|
||||||
|
def moveDir(log, dir_source, dir_target):
|
||||||
|
printLog(log, "MOVE " + dir_source + " -> " + dir_target)
|
||||||
|
shutil.move(dir_source, dir_target)
|
||||||
|
|
||||||
|
def findFilesRecursive(log, dir_where, dir_sub):
|
||||||
|
result = [ ]
|
||||||
|
files = os.listdir(dir_where + "/" + dir_sub)
|
||||||
|
for fileName in files:
|
||||||
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
|
filePath = dir_sub + fileName
|
||||||
|
fileFull = dir_where + "/" + dir_sub + fileName
|
||||||
|
if os.path.isfile(fileFull):
|
||||||
|
result += [ filePath ]
|
||||||
|
elif os.path.isdir(fileFull):
|
||||||
|
result += findFilesRecursive(log, dir_where, filePath + "/")
|
||||||
|
else:
|
||||||
|
printLog(log, "findFilesRecursive: file not dir or file?!" + filePath)
|
||||||
|
return result
|
||||||
|
|
||||||
|
def findFiles(log, dir_where, dir_sub, file_ext):
|
||||||
|
result = [ ]
|
||||||
|
files = os.listdir(dir_where + "/" + dir_sub)
|
||||||
|
len_file_ext = len(file_ext)
|
||||||
|
for fileName in files:
|
||||||
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
|
filePath = dir_sub + fileName
|
||||||
|
fileFull = dir_where + "/" + dir_sub + fileName
|
||||||
|
if os.path.isfile(fileFull):
|
||||||
|
if fileName[-len_file_ext:].lower() == file_ext.lower():
|
||||||
|
result += [ filePath ]
|
||||||
|
elif os.path.isdir(fileFull):
|
||||||
|
result += findFiles(log, dir_where, filePath + "/", file_ext)
|
||||||
|
else:
|
||||||
|
printLog(log, "findFiles: file not dir or file?!" + filePath)
|
||||||
|
return result
|
||||||
|
|
||||||
|
def isLegalFileName(fileName):
|
||||||
|
return fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*"
|
||||||
|
|
||||||
|
def findFilesNoSubdir(log, dir_where, file_ext):
|
||||||
|
result = [ ]
|
||||||
|
files = os.listdir(dir_where)
|
||||||
|
len_file_ext = len(file_ext)
|
||||||
|
for fileName in files:
|
||||||
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
|
fileFull = dir_where + "/" + fileName
|
||||||
|
if os.path.isfile(fileFull):
|
||||||
|
if fileName[-len_file_ext:].lower() == file_ext.lower():
|
||||||
|
result += [ fileName ]
|
||||||
|
elif not os.path.isdir(fileFull):
|
||||||
|
printLog(log, "findFilesNoSubdir: file not dir or file?!" + fileFull)
|
||||||
|
return result
|
||||||
|
|
||||||
|
def findFilesNoSubdirFiltered(log, dir_where, file_ext, filter):
|
||||||
|
if len(filter) == 0:
|
||||||
|
return findFilesNoSubdir(log, dir_where, file_ext)
|
||||||
|
result = [ ]
|
||||||
|
files = os.listdir(dir_where)
|
||||||
|
len_file_ext = len(file_ext)
|
||||||
|
for fileName in files:
|
||||||
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
|
fileFull = dir_where + "/" + fileName
|
||||||
|
if os.path.isfile(fileFull):
|
||||||
|
if fileName[-len_file_ext:].lower() == file_ext.lower():
|
||||||
|
fileNameLower = fileName.lower()
|
||||||
|
for filterWord in filter:
|
||||||
|
if filterWord in fileNameLower:
|
||||||
|
result += [ fileName ]
|
||||||
|
break
|
||||||
|
elif not os.path.isdir(fileFull):
|
||||||
|
printLog(log, "findFilesNoSubdir: file not dir or file?!" + fileFull)
|
||||||
|
return result
|
||||||
|
|
||||||
|
def findFile(log, dir_where, file_name):
|
||||||
|
files = os.listdir(dir_where)
|
||||||
|
for fileName in files:
|
||||||
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
|
filePath = dir_where + "/" + fileName
|
||||||
|
if os.path.isfile(filePath):
|
||||||
|
if fileName == file_name:
|
||||||
|
return filePath
|
||||||
|
elif os.path.isdir(filePath):
|
||||||
|
result = findFile(log, filePath, file_name)
|
||||||
|
if result != "":
|
||||||
|
return result
|
||||||
|
else:
|
||||||
|
printLog(log, "findFile: file not dir or file?! " + filePath)
|
||||||
|
return ""
|
||||||
|
|
||||||
|
def needUpdateDirByLowercaseTagLog(log, dir_source, ext_source, dir_dest, ext_dest):
|
||||||
|
updateCount = 0
|
||||||
|
skipCount = 0
|
||||||
|
lenSrcExt = len(ext_source)
|
||||||
|
sourceFiles = findFilesNoSubdir(log, dir_source, ext_source)
|
||||||
|
destFiles = findFilesNoSubdir(log, dir_dest, ext_dest)
|
||||||
|
for file in sourceFiles:
|
||||||
|
sourceFile = dir_source + "/" + file
|
||||||
|
tagFile = dir_dest + "/" + file[0:-lenSrcExt].lower() + ext_dest
|
||||||
|
if os.path.isfile(tagFile):
|
||||||
|
sourceTime = os.stat(sourceFile).st_mtime
|
||||||
|
tagTime = os.stat(tagFile).st_mtime
|
||||||
|
if (sourceTime > tagTime):
|
||||||
|
updateCount = updateCount + 1
|
||||||
|
else:
|
||||||
|
skipCount = skipCount + 1
|
||||||
|
else:
|
||||||
|
updateCount = updateCount + 1
|
||||||
|
if updateCount > 0:
|
||||||
|
printLog(log, "UPDATE " + str(updateCount) + " / " + str(len(sourceFiles)) + "; SKIP " + str(skipCount) + " / " + str(len(sourceFiles)) + "; DEST " + str(len(destFiles)))
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
printLog(log, "SKIP " + str(skipCount) + " / " + str(len(sourceFiles)) + "; DEST " + str(len(destFiles)))
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def needUpdateDirByTagLogFiltered(log, dir_source, ext_source, dir_dest, ext_dest, filter):
|
||||||
|
updateCount = 0
|
||||||
|
skipCount = 0
|
||||||
|
lenSrcExt = len(ext_source)
|
||||||
|
sourceFiles = findFilesNoSubdirFiltered(log, dir_source, ext_source, filter)
|
||||||
|
destFiles = findFilesNoSubdir(log, dir_dest, ext_dest)
|
||||||
|
for file in sourceFiles:
|
||||||
|
sourceFile = dir_source + "/" + file
|
||||||
|
tagFile = dir_dest + "/" + file[0:-lenSrcExt] + ext_dest
|
||||||
|
if os.path.isfile(tagFile):
|
||||||
|
sourceTime = os.stat(sourceFile).st_mtime
|
||||||
|
tagTime = os.stat(tagFile).st_mtime
|
||||||
|
if (sourceTime > tagTime):
|
||||||
|
updateCount = updateCount + 1
|
||||||
|
else:
|
||||||
|
skipCount = skipCount + 1
|
||||||
|
else:
|
||||||
|
updateCount = updateCount + 1
|
||||||
|
if updateCount > 0:
|
||||||
|
printLog(log, "UPDATE " + str(updateCount) + " / " + str(len(sourceFiles)) + "; SKIP " + str(skipCount) + " / " + str(len(sourceFiles)) + "; DEST " + str(len(destFiles)))
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
printLog(log, "SKIP " + str(skipCount) + " / " + str(len(sourceFiles)) + "; DEST " + str(len(destFiles)))
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def needUpdateDirByTagLog(log, dir_source, ext_source, dir_dest, ext_dest):
|
||||||
|
updateCount = 0
|
||||||
|
skipCount = 0
|
||||||
|
lenSrcExt = len(ext_source)
|
||||||
|
sourceFiles = findFilesNoSubdir(log, dir_source, ext_source)
|
||||||
|
destFiles = findFilesNoSubdir(log, dir_dest, ext_dest)
|
||||||
|
for file in sourceFiles:
|
||||||
|
sourceFile = dir_source + "/" + file
|
||||||
|
tagFile = dir_dest + "/" + file[0:-lenSrcExt] + ext_dest
|
||||||
|
if os.path.isfile(tagFile):
|
||||||
|
sourceTime = os.stat(sourceFile).st_mtime
|
||||||
|
tagTime = os.stat(tagFile).st_mtime
|
||||||
|
if (sourceTime > tagTime):
|
||||||
|
updateCount = updateCount + 1
|
||||||
|
else:
|
||||||
|
skipCount = skipCount + 1
|
||||||
|
else:
|
||||||
|
updateCount = updateCount + 1
|
||||||
|
if updateCount > 0:
|
||||||
|
printLog(log, "UPDATE " + str(updateCount) + " / " + str(len(sourceFiles)) + "; SKIP " + str(skipCount) + " / " + str(len(sourceFiles)) + "; DEST " + str(len(destFiles)))
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
printLog(log, "SKIP " + str(skipCount) + " / " + str(len(sourceFiles)) + "; DEST " + str(len(destFiles)))
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def needUpdateDirNoSubdirFile(log, dir_source, file_dest):
|
||||||
|
if not os.path.isfile(file_dest):
|
||||||
|
return 1
|
||||||
|
destTime = os.stat(file_dest).st_mtime
|
||||||
|
sourceFiles = os.listdir(dir_source)
|
||||||
|
for file in sourceFiles:
|
||||||
|
filePath = dir_source + "/" + file
|
||||||
|
if os.path.isfile(filePath):
|
||||||
|
fileTime = os.stat(filePath).st_mtime
|
||||||
|
if fileTime > destTime:
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def needUpdateFileDirNoSubdir(log, file_source, dir_dest):
|
||||||
|
if not os.path.isfile(file_source):
|
||||||
|
printLog(log, "WARNING MISSING " + file_source)
|
||||||
|
return 0
|
||||||
|
sourceTime = os.stat(file_source).st_mtime
|
||||||
|
destFiles = os.listdir(dir_dest)
|
||||||
|
for file in destFiles:
|
||||||
|
filePath = dir_dest + "/" + file
|
||||||
|
if os.path.isfile(filePath):
|
||||||
|
fileTime = os.stat(filePath).st_mtime
|
||||||
|
if sourceTime > fileTime:
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def needUpdateDirNoSubdirMultiFile(log, dir_source, root_file, files_dest):
|
||||||
|
for file_dest in files_dest:
|
||||||
|
if needUpdateDirNoSubdirFile(log, dir_source, root_file + "/" + file_dest):
|
||||||
|
return 1
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def needUpdateDirNoSubdirMultiFileExt(log, dir_source, root_file, files_dest, file_ext):
|
||||||
|
for file_dest in files_dest:
|
||||||
|
if needUpdateDirNoSubdirFile(log, dir_source, root_file + "/" + file_dest + file_ext):
|
||||||
|
return 1
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def needUpdateMultiDirNoSubdirFile(log, root_dir, dirs_source, file_dest):
|
||||||
|
for dir_source in dirs_source:
|
||||||
|
if needUpdateDirNoSubdirFile(log, root_dir + "/" + dir_source, file_dest):
|
||||||
|
return 1
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def needUpdateMultiDirNoSubdirMultiFileExt(log, root_dir, dirs_source, root_file, files_dest, file_ext):
|
||||||
|
for file_dest in files_dest:
|
||||||
|
if needUpdateMultiDirNoSubdirFile(log, root_dir, dirs_source, root_file + "/" + file_dest + file_ext):
|
||||||
|
return 1
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def needUpdateMultiDirNoSubdir(log, root_dir, dirs_source, dir_dest):
|
||||||
|
for dir_source in dirs_source:
|
||||||
|
if needUpdateDirNoSubdir(log, root_dir + "/" + dir_source, dir_dest):
|
||||||
|
return 1
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def needUpdateDirNoSubdirExtFile(log, dir_source, dir_ext, file_dest):
|
||||||
|
if not os.path.isfile(file_dest):
|
||||||
|
return 1
|
||||||
|
destTime = os.stat(file_dest).st_mtime
|
||||||
|
sourceFiles = os.listdir(dir_source)
|
||||||
|
for file in sourceFiles:
|
||||||
|
if file.endswith(dir_ext):
|
||||||
|
filePath = dir_source + "/" + file
|
||||||
|
if os.path.isfile(filePath):
|
||||||
|
fileTime = os.stat(filePath).st_mtime
|
||||||
|
if fileTime > destTime:
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def needUpdateDirNoSubdirExtMultiFileExt(log, dir_source, dir_ext, root_file, files_dest, file_ext):
|
||||||
|
for file_dest in files_dest:
|
||||||
|
if needUpdateDirNoSubdirExtFile(log, dir_source, dir_ext, root_file + "/" + file_dest + file_ext):
|
||||||
|
return 1
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def needUpdateDirNoSubdir(log, dir_source, dir_dest):
|
||||||
|
latestSourceFile = 0
|
||||||
|
oldestDestFile = 0
|
||||||
|
sourceFiles = os.listdir(dir_source)
|
||||||
|
destFiles = os.listdir(dir_dest)
|
||||||
|
for file in sourceFiles:
|
||||||
|
filePath = dir_source + "/" + file
|
||||||
|
if os.path.isfile(filePath):
|
||||||
|
fileTime = os.stat(filePath).st_mtime
|
||||||
|
if fileTime > latestSourceFile:
|
||||||
|
latestSourceFile = fileTime
|
||||||
|
for file in destFiles:
|
||||||
|
filePath = dir_dest + "/" + file
|
||||||
|
if os.path.isfile(filePath):
|
||||||
|
fileTime = os.stat(filePath).st_mtime
|
||||||
|
if oldestDestFile == 0 or fileTime < oldestDestFile:
|
||||||
|
oldestDestFile = fileTime
|
||||||
|
if latestSourceFile > oldestDestFile:
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def needUpdateDirNoSubdirLogExt(log, dir_source, ext_source, dir_dest, ext_dest):
|
||||||
|
latestSourceFile = 0
|
||||||
|
latestDestFile = 0
|
||||||
|
sourceFiles = findFilesNoSubdir(log, dir_source, ext_source)
|
||||||
|
destFiles = findFilesNoSubdir(log, dir_dest, ext_dest)
|
||||||
|
for file in sourceFiles:
|
||||||
|
fileTime = os.stat(dir_source + "/" + file).st_mtime
|
||||||
|
if (fileTime > latestSourceFile):
|
||||||
|
latestSourceFile = fileTime
|
||||||
|
for file in destFiles:
|
||||||
|
fileTime = os.stat(dir_dest + "/" + file).st_mtime
|
||||||
|
if (fileTime > latestDestFile):
|
||||||
|
latestDestFile = fileTime
|
||||||
|
if latestSourceFile > latestDestFile or len(sourceFiles) > len(destFiles):
|
||||||
|
printLog(log, "UPDATE; Source: " + str(latestSourceFile) + ", " + str(len(sourceFiles)) + " files; Dest: " + str(latestDestFile) + ", " + str(len(destFiles)) + " files")
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
printLog(log, "SKIP *")
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def needUpdateDirNoSubdirLogExtMultidir(log, all_dir_base, all_dir_source, dir_source, ext_source, dir_dest, ext_dest):
|
||||||
|
latestSourceFile = 0
|
||||||
|
latestDestFile = 0
|
||||||
|
sourceFilesAll = [ ]
|
||||||
|
for dir in all_dir_source:
|
||||||
|
sourceFilesAll += findFilesNoSubdir(log, all_dir_base + "/" + dir, ext_source)
|
||||||
|
sourceFiles = findFilesNoSubdir(log, dir_source, ext_source)
|
||||||
|
destFiles = findFilesNoSubdir(log, dir_dest, ext_dest)
|
||||||
|
for file in sourceFiles:
|
||||||
|
fileTime = os.stat(dir_source + "/" + file).st_mtime
|
||||||
|
if (fileTime > latestSourceFile):
|
||||||
|
latestSourceFile = fileTime
|
||||||
|
for file in destFiles:
|
||||||
|
fileTime = os.stat(dir_dest + "/" + file).st_mtime
|
||||||
|
if (fileTime > latestDestFile):
|
||||||
|
latestDestFile = fileTime
|
||||||
|
if latestSourceFile > latestDestFile or len(sourceFilesAll) > len(destFiles):
|
||||||
|
printLog(log, "UPDATE; Source: " + str(latestSourceFile) + ", " + str(len(sourceFilesAll)) + " files; Dest: " + str(latestDestFile) + ", " + str(len(destFiles)) + " files")
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
printLog(log, "SKIP *")
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def findFileMultiDir(log, dirs_where, file_name):
|
||||||
|
try:
|
||||||
|
for dir in dirs_where:
|
||||||
|
if dir != "":
|
||||||
|
file = findFile(log, dir, file_name)
|
||||||
|
if file != "":
|
||||||
|
return file
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "EXCEPTION " + str(e))
|
||||||
|
printLog(log, "FILE NOT FOUND " + file_name)
|
||||||
|
return ""
|
||||||
|
|
||||||
|
def findTool(log, dirs_where, file_name, suffix):
|
||||||
|
try:
|
||||||
|
for dir in dirs_where:
|
||||||
|
if dir != "":
|
||||||
|
tool = findFile(log, dir, file_name + suffix)
|
||||||
|
if tool != "":
|
||||||
|
printLog(log, "TOOL " + tool)
|
||||||
|
return tool
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "EXCEPTION " + str(e))
|
||||||
|
printLog(log, "TOOL NOT FOUND " + file_name + suffix)
|
||||||
|
return ""
|
||||||
|
|
||||||
|
def findMax(log, dir, file):
|
||||||
|
tool = dir + "/" + file
|
||||||
|
if os.path.isfile(tool):
|
||||||
|
printLog(log, "3DSMAX " + tool)
|
||||||
|
return tool
|
||||||
|
printLog(log, "3DSMAX NOT FOUND " + file)
|
||||||
|
return ""
|
||||||
|
|
||||||
|
def toolLogFail(log, tool, suffix):
|
||||||
|
printLog(log, "FAIL " + tool + suffix + " is not found")
|
||||||
|
|
||||||
|
def askVar(log, name, default):
|
||||||
|
sys.stdout.write(name + " (" + default + "): ")
|
||||||
|
line = sys.stdin.readline()
|
||||||
|
linestrip = line.strip()
|
||||||
|
if linestrip == "--":
|
||||||
|
log.write(name + " (" + default + "): ''\n")
|
||||||
|
return ""
|
||||||
|
elif linestrip == "":
|
||||||
|
log.write(name + " (" + default + "): '" + default + "'\n")
|
||||||
|
return default
|
||||||
|
else:
|
||||||
|
log.write(name + " (" + default + "): '" + linestrip + "'\n")
|
||||||
|
return linestrip
|
@ -0,0 +1,102 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file process.py
|
||||||
|
# \brief Tools configuration
|
||||||
|
# \date 2009-03-10 11:33GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Tools configuration.
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# Copyright (C) 2009-2014 by authors
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
# *** PROCESS TIMEOUT ***
|
||||||
|
SkelExportTimeout = 600000
|
||||||
|
SwtExportTimeout = 600000
|
||||||
|
ShapeExportTimeout = 3600000
|
||||||
|
ZoneExportTimeout = 1800000
|
||||||
|
ZoneBuildDependTimeout = 1800000
|
||||||
|
ZoneBuildWeldTimeout = 60000
|
||||||
|
ZoneLightBuildTimeout = 600000
|
||||||
|
ZoneIgLightBuildTimeout = 600000
|
||||||
|
SmallbankBuildTimeout = 60000
|
||||||
|
FarbankBuildTimeout = 180000
|
||||||
|
AnimExportTimeout = 1800000
|
||||||
|
IgExportTimeout = 600000
|
||||||
|
CmbExportTimeout = 60000
|
||||||
|
RbankBuildTesselTimeout = 6000000
|
||||||
|
RbankBuildSmoothTimeout = 6000000
|
||||||
|
RbankBuildProclocalTimeout = 6000000
|
||||||
|
RbankBuildProcglobalTimeout = 18000000
|
||||||
|
RbankBuildIndoorTimeout = 18000000
|
||||||
|
# WmapBuildTimeout = 60000
|
||||||
|
LigoExportTimeout = 3600000
|
||||||
|
LigoBuildTimeout = 1800000
|
||||||
|
PacsPrimExportTimeout = 600000
|
||||||
|
|
||||||
|
MapsBuildTimeout = 60000 # 1min
|
||||||
|
MaxShapeExportTimeout = 600000 # 10min
|
||||||
|
|
||||||
|
# *** TOOLS CONFIGURATION ***
|
||||||
|
|
||||||
|
TgaToDdsTool = "tga2dds"
|
||||||
|
BuildInterfaceTool = "build_interface"
|
||||||
|
ExecTimeoutTool = "exec_timeout"
|
||||||
|
BuildSmallbankTool = "build_smallbank"
|
||||||
|
BuildFarbankTool = "build_far_bank"
|
||||||
|
ZoneDependenciesTool = "zone_dependencies"
|
||||||
|
ZoneWelderTool = "zone_welder"
|
||||||
|
ZoneElevationTool = "zone_elevation"
|
||||||
|
BuildRbankTool = "build_rbank"
|
||||||
|
BuildIndoorRbankTool = "build_indoor_rbank"
|
||||||
|
BuildIgBoxesTool = "build_ig_boxes"
|
||||||
|
GetNeighborsTool = "get_neighbors"
|
||||||
|
ZoneLighterTool = "zone_lighter"
|
||||||
|
ZoneIgLighterTool = "zone_ig_lighter"
|
||||||
|
IgLighterTool = "ig_lighter"
|
||||||
|
AnimBuilderTool = "anim_builder"
|
||||||
|
TileEditTool = "tile_edit"
|
||||||
|
# BuildImagesetTool = "th_build_imageset" # kaetemi stuff, ignore this
|
||||||
|
MakeSheetIdTool = "make_sheet_id"
|
||||||
|
# BuildSheetsTool = "th_build_sheets" # kaetemi stuff, ignore this
|
||||||
|
# BuildSoundTool = "th_build_sound" # kaetemi stuff, ignore this
|
||||||
|
# BuildSoundTool = "build_sound"
|
||||||
|
BuildSoundbankTool = "build_soundbank"
|
||||||
|
BuildSamplebankTool = "build_samplebank"
|
||||||
|
BuildCoarseMeshTool = "build_coarse_mesh"
|
||||||
|
LightmapOptimizerTool = "lightmap_optimizer"
|
||||||
|
BuildClodtexTool = "build_clodtex"
|
||||||
|
BuildShadowSkinTool = "build_shadow_skin"
|
||||||
|
PanoplyMakerTool = "panoply_maker"
|
||||||
|
HlsBankMakerTool = "hls_bank_maker"
|
||||||
|
LandExportTool = "land_export"
|
||||||
|
PrimExportTool = "prim_export"
|
||||||
|
IgElevationTool = "ig_elevation"
|
||||||
|
IgAddTool = "ig_add"
|
||||||
|
BuildClodBankTool = "build_clod_bank"
|
||||||
|
SheetsPackerTool = "sheets_packer"
|
||||||
|
SheetsPackerShardTool = "sheets_packer_shard"
|
||||||
|
BnpMakeTool = "bnp_make"
|
||||||
|
SnpMakeTool = "snp_make"
|
||||||
|
AiBuildWmapTool = "ai_build_wmap"
|
||||||
|
TgaCutTool = "tga_cut"
|
||||||
|
PatchGenTool = "patch_gen"
|
||||||
|
TranslationToolsTool = "translation_tools"
|
||||||
|
BuildWorldPackedColTool = "build_world_packed_col"
|
||||||
|
R2IslandsTexturesTool = "r2_islands_textures"
|
||||||
|
PatchmanServiceTool = "ryzom_patchman_service"
|
||||||
|
SevenZipTool = "7za"
|
@ -0,0 +1,181 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file d1_client_patch.py
|
||||||
|
# \brief Install to client patch
|
||||||
|
# \date 2009-02-18 16:19GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install to client patch
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# Copyright (C) 2009-2014 by authors
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
||||||
|
sys.path.append("configuration")
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Client Patch')
|
||||||
|
parser.add_argument('--bnponly', '-bo', action='store_true')
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite_local import *
|
||||||
|
from tools import *
|
||||||
|
|
||||||
|
sys.path.append(WorkspaceDirectory)
|
||||||
|
from projects import *
|
||||||
|
|
||||||
|
# Log error
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Install to client patch")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
BnpMake = findTool(log, ToolDirectories, BnpMakeTool, ToolSuffix)
|
||||||
|
SnpMake = findTool(log, ToolDirectories, SnpMakeTool, ToolSuffix);
|
||||||
|
PatchGen = findTool(log, ToolDirectories, PatchGenTool, ToolSuffix)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find **** HARDCODED **** WINDOWS **** tools ... TODO: fix patch_gen tool !!!
|
||||||
|
Lzma = findFileMultiDir(log, ToolDirectories + WindowsExeDllCfgDirectories, "lzma.exe")
|
||||||
|
printLog(log, "LZMA " + Lzma)
|
||||||
|
XDelta = findFileMultiDir(log, ToolDirectories + WindowsExeDllCfgDirectories, "xdelta.exe")
|
||||||
|
printLog(log, "XDELTA " + XDelta)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
if BnpMake == "":
|
||||||
|
toolLogFail(log, BnpMakeTool, ToolSuffix)
|
||||||
|
elif PatchGen == "" and not args.bnponly:
|
||||||
|
toolLogFail(log, PatchGenTool, ToolSuffix)
|
||||||
|
elif Lzma == "" and not args.bnponly:
|
||||||
|
toolLogFail(log, "LZMA", ToolSuffix)
|
||||||
|
elif XDelta == "" and not args.bnponly:
|
||||||
|
toolLogFail(log, "XDELTA", ToolSuffix)
|
||||||
|
elif os.path.dirname(Lzma) != os.path.dirname(XDelta):
|
||||||
|
printLog(log, "FAIL lzma.exe and xdelta.exe must be in the same directory")
|
||||||
|
else:
|
||||||
|
mkPath(log, ClientPatchDirectory)
|
||||||
|
if not args.bnponly:
|
||||||
|
productXml = ClientPatchDirectory + "/" + ProductName + ".xml"
|
||||||
|
if not os.path.isfile(productXml):
|
||||||
|
printLog(log, ">>> Create new product <<<")
|
||||||
|
subprocess.call([ PatchGen, "createNewProduct", productXml ])
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, ">>> Rewrite " + ProductName + ".xml <<<") # because we know better.
|
||||||
|
shutil.move(productXml, productXml + ".old")
|
||||||
|
oldCfg = open(productXml + ".old", "r")
|
||||||
|
cfg = open(productXml, "w")
|
||||||
|
inCategories = 0
|
||||||
|
for line in oldCfg:
|
||||||
|
if not inCategories:
|
||||||
|
if line.strip() == "<_Categories>":
|
||||||
|
inCategories = 1
|
||||||
|
cfg.write("\t<_Categories>\n")
|
||||||
|
for category in InstallClientData:
|
||||||
|
packExt = ".bnp"
|
||||||
|
if (category["StreamedPackages"]):
|
||||||
|
packExt = ".snp"
|
||||||
|
cfg.write("\t\t<_Category>\n")
|
||||||
|
cfg.write("\t\t\t<_Name type=\"STRING\" value=\"" + category["Name"] + "\"/>\n")
|
||||||
|
if category["UnpackTo"] != None:
|
||||||
|
if category["UnpackTo"] != "":
|
||||||
|
cfg.write("\t\t\t<_UnpackTo type=\"STRING\" value=\"./" + category["UnpackTo"] + "/\"/>\n")
|
||||||
|
else:
|
||||||
|
cfg.write("\t\t\t<_UnpackTo type=\"STRING\" value=\"./\"/>\n")
|
||||||
|
cfg.write("\t\t\t<_IsOptional type=\"SINT32\" value=\"" + str(category["IsOptional"]) + "\"/>\n")
|
||||||
|
cfg.write("\t\t\t<_IsIncremental type=\"SINT32\" value=\"" + str(category["IsIncremental"]) + "\"/>\n")
|
||||||
|
for package in category["Packages"]:
|
||||||
|
if (len(package[1]) > 0):
|
||||||
|
cfg.write("\t\t\t<_Files type=\"STRING\" value=\"" + package[1][0] + "\"/>\n")
|
||||||
|
else:
|
||||||
|
cfg.write("\t\t\t<_Files type=\"STRING\" value=\"" + package[0] + packExt + "\"/>\n")
|
||||||
|
for ref in category["Refs"]:
|
||||||
|
cfg.write("\t\t\t<_Files type=\"STRING\" value=\"" + ref + "_.ref\"/>\n")
|
||||||
|
cfg.write("\t\t</_Category>\n")
|
||||||
|
cfg.write("\t</_Categories>\n")
|
||||||
|
else:
|
||||||
|
cfg.write(line)
|
||||||
|
else:
|
||||||
|
if line.strip() == "</_Categories>":
|
||||||
|
inCategories = 0
|
||||||
|
oldCfg.close()
|
||||||
|
cfg.close()
|
||||||
|
os.remove(productXml + ".old")
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, ">>> Make bnp <<<")
|
||||||
|
targetPath = ClientPatchDirectory + "/bnp"
|
||||||
|
tagPath = ClientPatchDirectory + "/bnp_tag"
|
||||||
|
mkPath(log, targetPath)
|
||||||
|
mkPath(log, tagPath)
|
||||||
|
for category in InstallClientData:
|
||||||
|
packExt = ".bnp"
|
||||||
|
if (category["StreamedPackages"]):
|
||||||
|
packExt = ".snp"
|
||||||
|
for package in category["Packages"]:
|
||||||
|
printLog(log, "PACKAGE " + package[0])
|
||||||
|
sourcePath = InstallDirectory + "/" + package[0]
|
||||||
|
mkPath(log, sourcePath)
|
||||||
|
targetBnp = targetPath + "/" + package[0] + packExt
|
||||||
|
tagBnp = tagPath + "/" + package[0] + packExt + ".tag"
|
||||||
|
if (len(package[1]) > 0):
|
||||||
|
targetBnp = targetPath + "/" + package[1][0]
|
||||||
|
tagBnp = tagPath + "/" + package[1][0] + ".tag"
|
||||||
|
printLog(log, "TARGET " + package[1][0])
|
||||||
|
needUpdateBnp = 1
|
||||||
|
if (len(package) > 2):
|
||||||
|
needUpdateBnp = needUpdate(log, sourcePath + "/" + package[2], tagBnp)
|
||||||
|
else:
|
||||||
|
needUpdateBnp = needUpdateDirNoSubdirFile(log, sourcePath, tagBnp)
|
||||||
|
if (needUpdateBnp):
|
||||||
|
subRet = 0
|
||||||
|
open(tagBnp, 'a').close()
|
||||||
|
os.utime(tagBnp, None)
|
||||||
|
if (category["StreamedPackages"]):
|
||||||
|
printLog(log, "SNP " + targetBnp)
|
||||||
|
# cwDir = os.getcwd().replace("\\", "/")
|
||||||
|
# toolDir = os.path.dirname(Lzma).replace("\\", "/")
|
||||||
|
# os.chdir(toolDir)
|
||||||
|
subRet = subprocess.call([ SnpMake, "-p", sourcePath, targetBnp, ClientPatchDirectory + "/stream" ] + package[1][1:])
|
||||||
|
# os.chdir(cwDir)
|
||||||
|
else:
|
||||||
|
printLog(log, "BNP " + targetBnp)
|
||||||
|
subRet = subprocess.call([ BnpMake, "-p", sourcePath, "-o", targetBnp ] + package[1][1:])
|
||||||
|
if (subRet != 0):
|
||||||
|
os.remove(tagBnp)
|
||||||
|
else:
|
||||||
|
printLog(log, "SKIP " + targetBnp)
|
||||||
|
printLog(log, "")
|
||||||
|
if not args.bnponly:
|
||||||
|
printLog(log, ">>> Update product <<<")
|
||||||
|
cwDir = os.getcwd().replace("\\", "/")
|
||||||
|
toolDir = os.path.dirname(Lzma).replace("\\", "/")
|
||||||
|
os.chdir(toolDir)
|
||||||
|
subprocess.call([ PatchGen, "updateProduct", productXml ])
|
||||||
|
os.chdir(cwDir)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
if os.path.isfile("d1_client_patch.log"):
|
||||||
|
os.remove("d1_client_patch.log")
|
||||||
|
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_client_patch.log")
|
||||||
|
shutil.move("log.log", "d1_client_patch.log")
|
@ -0,0 +1,97 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build ai_wmap
|
||||||
|
# \date 2010-05-24 13:42GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build ai_wmap
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# Copyright (C) 2009-2014 by authors
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from process import *
|
||||||
|
from tools import *
|
||||||
|
from directories import *
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Build ai_wmap")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
AiBuildWmap = findTool(log, ToolDirectories, AiBuildWmapTool, ToolSuffix)
|
||||||
|
TgaCut = findTool(log, ToolDirectories, TgaCutTool, ToolSuffix)
|
||||||
|
|
||||||
|
if AiBuildWmap == "":
|
||||||
|
toolLogFail(log, AiBuildWmapTool, ToolSuffix)
|
||||||
|
if TgaCut == "":
|
||||||
|
toolLogFail(log, TgaCutTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
printLog(log, ">>> Copy ai_build_wmap.cfg <<<")
|
||||||
|
cfgPath = ActiveProjectDirectory + "/generated/ai_build_wmap.cfg"
|
||||||
|
tagPath = ExportBuildDirectory + "/" + AiWmapBuildTagDirectory + "/ai_wmap_build.tag"
|
||||||
|
shutil.copy(cfgPath, "ai_build_wmap.cfg")
|
||||||
|
printLog(log, ">>> Check up packed sheets <<<")
|
||||||
|
subprocess.call([ AiBuildWmap, "checkPackedSheets" ])
|
||||||
|
printLog(log, ">>> Build ai_wmap <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankOutputBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildTagDirectory)
|
||||||
|
if (needUpdate(log, "continents.packed_sheets", tagPath) or needUpdateMultiDirNoSubdirFile(log, ExportBuildDirectory, [ RbankOutputBuildDirectory ] + IgLookupDirectories + PacsPrimLookupDirectories, tagPath)):
|
||||||
|
printLog(log, ">>> Generate wmap <<<")
|
||||||
|
subprocess.call([ AiBuildWmap, "pacsCrunch " + AiWmapContinentName ])
|
||||||
|
printLog(log, ">>> Generate sized wmap <<<")
|
||||||
|
subprocess.call([ AiBuildWmap, "pacsBuildGabarit " + AiWmapContinentName ])
|
||||||
|
printLog(log, ">>> Generate cwmaps for each size <<<")
|
||||||
|
callParallelProcess([ AiBuildWmap, "pacsBuildWmap " + AiWmapContinentName + "_0" ])
|
||||||
|
callParallelProcess([ AiBuildWmap, "pacsBuildWmap " + AiWmapContinentName + "_1" ])
|
||||||
|
callParallelProcess([ AiBuildWmap, "pacsBuildWmap " + AiWmapContinentName + "_2" ])
|
||||||
|
flushParallelProcesses()
|
||||||
|
printLog(log, ">>> Generate bitmap for each size <<<")
|
||||||
|
callParallelProcess([ AiBuildWmap, "pacsBuildBitmap " + AiWmapContinentName + "_0" ])
|
||||||
|
callParallelProcess([ AiBuildWmap, "pacsBuildBitmap " + AiWmapContinentName + "_1" ])
|
||||||
|
callParallelProcess([ AiBuildWmap, "pacsBuildBitmap " + AiWmapContinentName + "_2" ])
|
||||||
|
flushParallelProcesses()
|
||||||
|
printLog(log, ">>> Clear height maps for size 1 and 2 <<<")
|
||||||
|
subprocess.call([ AiBuildWmap, "pacsClearHeightmap " + AiWmapContinentName ])
|
||||||
|
printLog(log, ">>> Cut tga for world editor <<<")
|
||||||
|
subprocess.call([ TgaCut, ExportBuildDirectory + "/" + AiWmapBuildDirectory + "/" + AiWmapContinentName + "_0.tga" ])
|
||||||
|
moveFilesExtNoTree(log, ".", ExportBuildDirectory + "/" + AiWmapBuildDirectory, ".tga")
|
||||||
|
printLog(log, ">>> Remove wmap <<<")
|
||||||
|
removeFilesRecursiveExt(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory, ".wmap")
|
||||||
|
tagFile = open(tagPath, "w")
|
||||||
|
tagFile.write(time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())) + "\n")
|
||||||
|
tagFile.close()
|
||||||
|
else:
|
||||||
|
printLog(log, "SKIP *")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
@ -0,0 +1,120 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief setup cartographer
|
||||||
|
# \date 2014-09-13 13:32GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Setup cartographer
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# Copyright (C) 2014 Jan BOON
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from process import *
|
||||||
|
from tools import *
|
||||||
|
from directories import *
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Setup cartographer")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Setup build directories
|
||||||
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + CartographerBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + CartographerMapBuildDirectory)
|
||||||
|
|
||||||
|
# Setup lookup directories
|
||||||
|
printLog(log, ">>> Setup lookup directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory) # IN
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ZoneLightBuildDirectory) # IN (.zonel)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ZoneLightIgLandBuildDirectory) # IN (.ig)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SmallbankExportDirectory) # IN
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + FarbankBuildDirectory) # IN
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + DisplaceExportDirectory) # IN
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + TilesExportDirectory) # IN
|
||||||
|
mkPath(log, LeveldesignDataCommonDirectory) # IN
|
||||||
|
mkPath(log, LeveldesignDfnDirectory) # IN
|
||||||
|
mkPath(log, LeveldesignDirectory) # IN
|
||||||
|
for dir in PropertiesExportBuildSearchPaths:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + dir)
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup install directories <<<")
|
||||||
|
mkPath(log, InstallDirectory + "/" + CartographerInstallDirectory)
|
||||||
|
mkPath(log, InstallDirectory + "/" + IslandsInstallDirectory)
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup configuration <<<")
|
||||||
|
mkPath(log, ActiveProjectDirectory + "/generated")
|
||||||
|
cfg = open(ActiveProjectDirectory + "/generated/island_screenshots.cfg", "w")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.write("// BUILD CARTOGRAPHER CONFIGURATION\n")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.write("SearchPaths = {\n")
|
||||||
|
cfg.write("\t\"" + ExportBuildDirectory + "/" + AiWmapBuildDirectory + "\", \n")
|
||||||
|
cfg.write("\t\"" + ExportBuildDirectory + "/" + ZoneLightBuildDirectory + "\", \n")
|
||||||
|
cfg.write("\t\"" + ExportBuildDirectory + "/" + ZoneLightIgLandBuildDirectory + "\", \n")
|
||||||
|
cfg.write("\t\"" + ExportBuildDirectory + "/" + SmallbankExportDirectory + "\", \n")
|
||||||
|
cfg.write("\t\"" + ExportBuildDirectory + "/" + FarbankBuildDirectory + "\", \n")
|
||||||
|
cfg.write("\t\"" + ExportBuildDirectory + "/" + DisplaceExportDirectory + "\", \n")
|
||||||
|
cfg.write("\t\"" + ExportBuildDirectory + "/" + TilesExportDirectory + "\", \n")
|
||||||
|
cfg.write("\t\"" + LeveldesignDataCommonDirectory + "\", \n")
|
||||||
|
cfg.write("\t\"" + LeveldesignDfnDirectory + "\", \n")
|
||||||
|
cfg.write("\t\"" + LeveldesignDirectory + "\", \n")
|
||||||
|
for dir in PropertiesExportBuildSearchPaths:
|
||||||
|
cfg.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
|
||||||
|
cfg.write("};\n")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.write("OutDir = \"" + ExportBuildDirectory + "/" + CartographerBuildDirectory + "\";\n")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.write("Continents = {\n")
|
||||||
|
cfg.write("\t\"" + CartographerContinent + "\", \n")
|
||||||
|
cfg.write("};\n")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.write("SeasonSuffixes = {\n")
|
||||||
|
if CartographerSeasonSuffixes:
|
||||||
|
for suffix in CartographerSeasonSuffixes:
|
||||||
|
cfg.write("\t\"" + suffix + "\", \n")
|
||||||
|
else:
|
||||||
|
for suffix in MultipleTilesPostfix:
|
||||||
|
cfg.write("\t\"" + suffix + "\", \n")
|
||||||
|
cfg.write("};\n")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.write("InverseZTest = true;\n")
|
||||||
|
cfg.write("Vegetation = true;\n")
|
||||||
|
cfg.write("MeterPixelSize = 2;\n")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.write("CompleteIslandsFile = \"" + ExportBuildDirectory + "/" + CartographerBuildDirectory + "/" + IslandsXmlFile + "\";\n")
|
||||||
|
cfg.write("EntryPointsFile = \"r2_entry_points.txt\";\n")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.close()
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
@ -0,0 +1,63 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Export font
|
||||||
|
# \date 2009-03-10-19-43-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Export font
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# Copyright (C) 2009-2014 by authors
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from process import *
|
||||||
|
from tools import *
|
||||||
|
from directories import *
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Export font")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, ">>> Export font <<<")
|
||||||
|
fontExportDir = ExportBuildDirectory + "/" + FontExportDirectory
|
||||||
|
mkPath(log, fontExportDir)
|
||||||
|
for dir in FontSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, fontExportDir, ".ttf")
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, fontExportDir, ".otf")
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, fontExportDir, ".afm")
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, fontExportDir, ".pfb")
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, fontExportDir, ".pfm")
|
||||||
|
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
@ -0,0 +1,62 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Install font
|
||||||
|
# \date 2009-03-10-19-43-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install font
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# Copyright (C) 2009-2014 by authors
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite_local import *
|
||||||
|
from process import *
|
||||||
|
from tools import *
|
||||||
|
from directories import *
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Install font")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
installPath = InstallDirectory + "/" + FontInstallDirectory
|
||||||
|
mkPath(log, installPath)
|
||||||
|
fontExportDir = ExportBuildDirectory + "/" + FontExportDirectory
|
||||||
|
mkPath(log, fontExportDir)
|
||||||
|
|
||||||
|
printLog(log, ">>> Install font <<<")
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, fontExportDir, installPath, ".ttf")
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, fontExportDir, installPath, ".otf")
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, fontExportDir, installPath, ".afm")
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, fontExportDir, installPath, ".pfb")
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, fontExportDir, installPath, ".pfm")
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
@ -0,0 +1,275 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build ig
|
||||||
|
# \date 2010-05-24 13:42GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build ig
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# Copyright (C) 2009-2014 by authors
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from process import *
|
||||||
|
from tools import *
|
||||||
|
from directories import *
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Build ig")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix)
|
||||||
|
PrimExport = findTool(log, ToolDirectories, PrimExportTool , ToolSuffix)
|
||||||
|
IgElevation = findTool(log, ToolDirectories, IgElevationTool, ToolSuffix)
|
||||||
|
IgAdd = findTool(log, ToolDirectories, IgAddTool, ToolSuffix)
|
||||||
|
|
||||||
|
configDir = ActiveProjectDirectory + "/generated"
|
||||||
|
mkPath(log, configDir)
|
||||||
|
|
||||||
|
def igElevation(inputIgDir, outputIgDir):
|
||||||
|
printLog(log, ">>> IG Elevation <<<")
|
||||||
|
mkPath(log, inputIgDir)
|
||||||
|
mkPath(log, outputIgDir)
|
||||||
|
needUpdateIg = needUpdateDirByTagLog(log, inputIgDir, ".ig", outputIgDir, ".ig")
|
||||||
|
if needUpdateIg:
|
||||||
|
printLog(log, "DETECT UPDATE IG->Elevated")
|
||||||
|
else:
|
||||||
|
printLog(log, "DETECT SKIP IG->Elevated")
|
||||||
|
needUpdateHeightMap = needUpdateFileDirNoSubdir(log, DatabaseDirectory + "/" + LigoBaseSourceDirectory + "/" + LigoExportHeightmap1, outputIgDir) or needUpdateFileDirNoSubdir(log, DatabaseDirectory + "/" + LigoBaseSourceDirectory + "/" + LigoExportHeightmap2, outputIgDir)
|
||||||
|
if needUpdateHeightMap:
|
||||||
|
printLog(log, "DETECT UPDATE HeightMap->Elevated")
|
||||||
|
else:
|
||||||
|
printLog(log, "DETECT SKIP HeightMap->Elevated")
|
||||||
|
needUpdateLand = needUpdateFileDirNoSubdir(log, DatabaseDirectory + "/" + LigoBaseSourceDirectory + "/" + LigoExportLand, outputIgDir)
|
||||||
|
if needUpdateLand:
|
||||||
|
printLog(log, "DETECT UPDATE Land->Elevated")
|
||||||
|
else:
|
||||||
|
printLog(log, "DETECT SKIP Land->Elevated")
|
||||||
|
if needUpdateIg or needUpdateHeightMap or needUpdateLand:
|
||||||
|
printLog(log, "DETECT DECIDE UPDATE")
|
||||||
|
mkPath(log, inputIgDir)
|
||||||
|
mkPath(log, outputIgDir)
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + LigoBaseSourceDirectory)
|
||||||
|
|
||||||
|
configFile = configDir + "/ig_elevation.cfg"
|
||||||
|
if os.path.isfile(configFile):
|
||||||
|
os.remove(configFile)
|
||||||
|
|
||||||
|
printLog(log, "CONFIG " + configFile)
|
||||||
|
cf = open(configFile, "w")
|
||||||
|
cf.write("// ig_elevation.cfg\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("InputIGDir = \"" + inputIgDir + "\";\n")
|
||||||
|
cf.write("OutputIGDir = \"" + outputIgDir + "\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("CellSize = 160.0;")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("HeightMapFile1 = \"" + DatabaseDirectory + "/" + LigoBaseSourceDirectory + "/" + LigoExportHeightmap1 + "\";\n")
|
||||||
|
cf.write("ZFactor1 = " + LigoExportZFactor1 + ";\n")
|
||||||
|
cf.write("HeightMapFile2 = \"" + DatabaseDirectory + "/" + LigoBaseSourceDirectory + "/" + LigoExportHeightmap2 + "\";\n")
|
||||||
|
cf.write("ZFactor2 = " + LigoExportZFactor2 + ";\n")
|
||||||
|
cf.write("ExtendCoords = " + str(LigoExportExtendCoords) + ";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("LandFile = \"" + DatabaseDirectory + "/" + LigoBaseSourceDirectory + "/" + LigoExportLand + "\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.close()
|
||||||
|
subprocess.call([ IgElevation, configFile ])
|
||||||
|
os.remove(configFile)
|
||||||
|
|
||||||
|
# Copy remaining IG files
|
||||||
|
#BUG:copyFilesLogless(log, inputIgDir, outputIgDir)
|
||||||
|
else:
|
||||||
|
printLog(log, "DETECT DECIDE SKIP")
|
||||||
|
printLog(log, "SKIP *")
|
||||||
|
|
||||||
|
# Build process
|
||||||
|
if (ContinentLeveldesignWorldDirectory != "") or (len(IgOtherSourceDirectories) > 0):
|
||||||
|
printLog(log, ">>> Prim IG: ON <<<")
|
||||||
|
configFile = configDir + "/prim_export.cfg"
|
||||||
|
if os.path.isfile(configFile):
|
||||||
|
os.remove(configFile)
|
||||||
|
|
||||||
|
outIgDir = ExportBuildDirectory + "/" + IgElevLandPrimBuildDirectory
|
||||||
|
mkPath(log, outIgDir)
|
||||||
|
zoneWDir = ExportBuildDirectory + "/" + ZoneWeldBuildDirectory
|
||||||
|
mkPath(log, zoneWDir)
|
||||||
|
smallBank = DatabaseDirectory + "/" + TileRootSourceDirectory + "/" + BankTileBankName + ".bank"
|
||||||
|
farBank = ExportBuildDirectory + "/" + FarbankBuildDirectory + "/" + BankTileBankName + MultipleTilesPostfix[0] + ".farbank"
|
||||||
|
displaceDir = DatabaseDirectory + "/" + DisplaceSourceDirectory
|
||||||
|
continentDir = LeveldesignWorldDirectory + "/" + ContinentLeveldesignWorldDirectory
|
||||||
|
mkPath(log, continentDir)
|
||||||
|
formDir = LeveldesignDirectory
|
||||||
|
mkPath(log, LeveldesignDirectory)
|
||||||
|
worldEditorFiles = WorldEditorFilesDirectory
|
||||||
|
mkPath(log, WorldEditorFilesDirectory)
|
||||||
|
|
||||||
|
printLog(log, "CONFIG " + configFile)
|
||||||
|
cf = open(configFile, "w")
|
||||||
|
cf.write("// prim_export.cfg\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("OutIGDir = \"" + outIgDir + "\";\n")
|
||||||
|
cf.write("ZoneWDir = \"" + zoneWDir + "\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("SmallBank = \"" + smallBank + "\";\n")
|
||||||
|
cf.write("FarBank = \"" + farBank + "\";\n")
|
||||||
|
cf.write("DisplaceDir = \"" + displaceDir + "\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("CellSize = 160.0;")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("PrimDirs = {\n")
|
||||||
|
cf.write("\t\"" + continentDir + "\", \n")
|
||||||
|
for dir in IgPrimitiveSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
cf.write("\t\"" + DatabaseDirectory + "/" + dir + "\", \n")
|
||||||
|
cf.write("};\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("FormDir = \"" + formDir + "\";\n")
|
||||||
|
cf.write("WorldEditorFiles = \"" + worldEditorFiles + "\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.close()
|
||||||
|
subprocess.call([ PrimExport, configFile ])
|
||||||
|
os.remove(configFile)
|
||||||
|
|
||||||
|
igElevation(ExportBuildDirectory + "/" + LigoIgLandBuildDirectory, ExportBuildDirectory + "/" + IgElevLandLigoBuildDirectory)
|
||||||
|
|
||||||
|
igElevation(ExportBuildDirectory + "/" + IgStaticLandExportDirectory, ExportBuildDirectory + "/" + IgElevLandStaticBuildDirectory)
|
||||||
|
|
||||||
|
printLog(log, ">>> Merge land IGs <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + IgTempLandMergeBuildDirectory)
|
||||||
|
removeFilesRecursive(log, ExportBuildDirectory + "/" + IgTempLandMergeBuildDirectory)
|
||||||
|
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + IgLandBuildDirectory)
|
||||||
|
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + IgElevLandPrimBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + IgElevLandLigoBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + IgElevLandStaticBuildDirectory)
|
||||||
|
igFilesPrim = findFiles(log, ExportBuildDirectory + "/" + IgElevLandPrimBuildDirectory, "", ".ig")
|
||||||
|
igFilesLigo = findFiles(log, ExportBuildDirectory + "/" + IgElevLandLigoBuildDirectory, "", ".ig")
|
||||||
|
igFilesStatic = findFiles(log, ExportBuildDirectory + "/" + IgElevLandStaticBuildDirectory, "", ".ig")
|
||||||
|
igFilesAll = [ ]
|
||||||
|
for igFile in igFilesPrim:
|
||||||
|
if not igFile in igFilesAll:
|
||||||
|
igFilesAll += [ igFile ]
|
||||||
|
for igFile in igFilesLigo:
|
||||||
|
if not igFile in igFilesAll:
|
||||||
|
igFilesAll += [ igFile ]
|
||||||
|
for igFile in igFilesStatic:
|
||||||
|
if not igFile in igFilesAll:
|
||||||
|
igFilesAll += [ igFile ]
|
||||||
|
igFilesAll.sort()
|
||||||
|
for igFile in igFilesAll:
|
||||||
|
primIgFile = ExportBuildDirectory + "/" + IgElevLandPrimBuildDirectory + "/" + igFile
|
||||||
|
ligoIgFile = ExportBuildDirectory + "/" + IgElevLandLigoBuildDirectory + "/" + igFile
|
||||||
|
staticIgFile = ExportBuildDirectory + "/" + IgElevLandStaticBuildDirectory + "/" + igFile
|
||||||
|
tempIgFile = ExportBuildDirectory + "/" + IgTempLandMergeBuildDirectory + "/" + igFile
|
||||||
|
outIgFile = ExportBuildDirectory + "/" + IgLandBuildDirectory + "/" + igFile
|
||||||
|
activeFile = ""
|
||||||
|
needsUpdate = 0
|
||||||
|
sourceTools = ""
|
||||||
|
if igFile in igFilesPrim:
|
||||||
|
if needUpdate(log, primIgFile, outIgFile):
|
||||||
|
needsUpdate = 1
|
||||||
|
if not needsUpdate == 1 and igFile in igFilesLigo:
|
||||||
|
if needUpdate(log, ligoIgFile, outIgFile):
|
||||||
|
needsUpdate = 1
|
||||||
|
if not needsUpdate == 1 and igFile in igFilesStatic:
|
||||||
|
if needUpdate(log, staticIgFile, outIgFile):
|
||||||
|
needsUpdate = 1
|
||||||
|
if needsUpdate == 1:
|
||||||
|
if os.path.isfile(outIgFile):
|
||||||
|
os.remove(outIgFile)
|
||||||
|
if igFile in igFilesPrim:
|
||||||
|
sourceTools += " [Prim]"
|
||||||
|
activeFile = primIgFile
|
||||||
|
if igFile in igFilesLigo:
|
||||||
|
if activeFile == "":
|
||||||
|
activeFile = ligoIgFile
|
||||||
|
else:
|
||||||
|
sourceTools += " [Ligo]"
|
||||||
|
subprocess.call([ IgAdd, tempIgFile, ligoIgFile, activeFile ])
|
||||||
|
activeFile = tempIgFile
|
||||||
|
if igFile in igFilesStatic:
|
||||||
|
if activeFile == "":
|
||||||
|
activeFile = staticIgFile
|
||||||
|
else:
|
||||||
|
sourceTools += " [Static]"
|
||||||
|
subprocess.call([ IgAdd, outIgFile, staticIgFile, activeFile ])
|
||||||
|
activeFile = outIgFile
|
||||||
|
else:
|
||||||
|
shutil.copy(activeFile, outIgFile)
|
||||||
|
printLog(log, "MERGE " + igFile + sourceTools)
|
||||||
|
else:
|
||||||
|
printLog(log, "SKIP " + igFile)
|
||||||
|
|
||||||
|
# Remove temporary land IGs
|
||||||
|
printLog(log, ">>> Remove temporary land IGs <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + IgTempLandMergeBuildDirectory)
|
||||||
|
removeFilesRecursive(log, ExportBuildDirectory + "/" + IgTempLandMergeBuildDirectory)
|
||||||
|
|
||||||
|
# Remove outdated land IGs
|
||||||
|
printLog(log, ">>> Remove outdated land IGs <<<")
|
||||||
|
igFilesOut = findFiles(log, ExportBuildDirectory + "/" + IgLandBuildDirectory, "", ".ig")
|
||||||
|
for igFile in igFilesOut:
|
||||||
|
if not igFile in igFilesAll:
|
||||||
|
printLog(log, "RM " + ExportBuildDirectory + "/" + IgLandBuildDirectory + "/" + igFile)
|
||||||
|
os.remove(ExportBuildDirectory + "/" + IgLandBuildDirectory + "/" + igFile)
|
||||||
|
|
||||||
|
# Verify land IGs
|
||||||
|
printLog(log, ">>> Verify land IGs <<<")
|
||||||
|
for igFile in igFilesAll:
|
||||||
|
if not igFile in igFilesOut:
|
||||||
|
printLog(log, "MISSING " + igFile)
|
||||||
|
|
||||||
|
# Write land IGs TXT
|
||||||
|
printLog(log, ">>> Write land IGs TXT <<<")
|
||||||
|
igTxtFile = ExportBuildDirectory + "/" + IgLandBuildDirectory + "/" + LandscapeName + "_ig.txt"
|
||||||
|
if needUpdateDirNoSubdirFile(log, ExportBuildDirectory + "/" + IgLandBuildDirectory, igTxtFile):
|
||||||
|
printLog(log, "WRITE " + ExportBuildDirectory + "/" + IgLandBuildDirectory + "/" + LandscapeName + "_ig.txt")
|
||||||
|
if os.path.isfile(igTxtFile):
|
||||||
|
os.remove(igTxtFile)
|
||||||
|
igTxt = open(igTxtFile, "w")
|
||||||
|
for igFile in igFilesAll:
|
||||||
|
igTxt.write(igFile + "\n")
|
||||||
|
igTxt.close()
|
||||||
|
else:
|
||||||
|
printLog(log, "SKIP *")
|
||||||
|
|
||||||
|
# Merge other IGs
|
||||||
|
printLog(log, ">>> Merge other IGs <<<") # (not true merge, since not necesserary)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + IgStaticOtherExportDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + LigoIgOtherBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + IgOtherBuildDirectory)
|
||||||
|
# copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + IgStaticOtherExportDirectory, ExportBuildDirectory + "/" + IgOtherBuildDirectory, ".ig")
|
||||||
|
igElevation(ExportBuildDirectory + "/" + IgStaticOtherExportDirectory, ExportBuildDirectory + "/" + IgOtherBuildDirectory)
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + LigoIgOtherBuildDirectory, ExportBuildDirectory + "/" + IgOtherBuildDirectory, ".ig")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
@ -0,0 +1,121 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief setup ligo
|
||||||
|
# \date 2010-05-24 08:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Setup ligo
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# Copyright (C) 2009-2014 by authors
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from process import *
|
||||||
|
from tools import *
|
||||||
|
from directories import *
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Setup ligo")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Setup source directories
|
||||||
|
printLog(log, ">>> Setup source directories <<<")
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + LigoBaseSourceDirectory)
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + LigoMaxSourceDirectory)
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + ZoneSourceDirectory[0])
|
||||||
|
|
||||||
|
# Setup export directories
|
||||||
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SmallbankExportDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + LigoEcosystemExportDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + LigoEcosystemIgExportDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + LigoEcosystemZoneExportDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + LigoEcosystemZoneLigoExportDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + LigoEcosystemCmbExportDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + LigoEcosystemTagExportDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ZoneExportDirectory)
|
||||||
|
|
||||||
|
# Setup build directories
|
||||||
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
if LigoExportLand != "":
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + LigoZoneBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + LigoIgLandBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + LigoIgOtherBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RBankCmbExportDirectory)
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
|
|
||||||
|
# Setup land exporter cfg
|
||||||
|
if LigoExportLand != "":
|
||||||
|
printLog(log, ">>> Setup land exporter cfg <<<")
|
||||||
|
mkPath(log, ActiveProjectDirectory + "/generated")
|
||||||
|
cf = open(ActiveProjectDirectory + "/generated/land_exporter.cfg", "w")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("// Ligo settings\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("OutZoneDir = \"" + ExportBuildDirectory + "/" + LigoZoneBuildDirectory + "\";\n")
|
||||||
|
cf.write("OutIGDir = \"" + ExportBuildDirectory + "/" + LigoIgLandBuildDirectory + "\";\n")
|
||||||
|
cf.write("AdditionnalIGOutDir = \"" + ExportBuildDirectory + "/" + LigoIgOtherBuildDirectory + "\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("RefZoneDir = \"" + ExportBuildDirectory + "/" + LigoEcosystemZoneExportDirectory+ "\";\n") # FIXME
|
||||||
|
cf.write("RefIGDir = \"" + ExportBuildDirectory + "/" + LigoEcosystemIgExportDirectory + "\";\n")
|
||||||
|
cf.write("AdditionnalIGInDir = \"" + ExportBuildDirectory + "/" + LigoEcosystemIgExportDirectory + "\";\n") # FIXME
|
||||||
|
cf.write("ContinentsDir = \"" + LeveldesignWorldDirectory + "\";\n")
|
||||||
|
cf.write("LigoBankDir = \"" + ExportBuildDirectory + "/" + LigoEcosystemZoneLigoExportDirectory + "\";\n") # FIXME
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("TileBankFile = \"" + DatabaseDirectory + "/" + LigoTileBankFile + "\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("ColorMapFile = \"" + DatabaseDirectory + "/" + LigoBaseSourceDirectory + "/" + LigoExportColormap + "\";\n")
|
||||||
|
cf.write("HeightMapFile1 = \"" + DatabaseDirectory + "/" + LigoBaseSourceDirectory + "/" + LigoExportHeightmap1 + "\";\n")
|
||||||
|
cf.write("ZFactor1 = " + LigoExportZFactor1 + ";\n")
|
||||||
|
cf.write("HeightMapFile2 = \"" + DatabaseDirectory + "/" + LigoBaseSourceDirectory + "/" + LigoExportHeightmap2 + "\";\n")
|
||||||
|
cf.write("ZFactor2 = " + LigoExportZFactor2 + ";\n")
|
||||||
|
cf.write("ExtendCoords = " + str(LigoExportExtendCoords) + ";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("ZoneLight = 0;\n")
|
||||||
|
cf.write("CellSize = 160;\n")
|
||||||
|
cf.write("Threshold = 1;\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("DFNDir = \"" + LeveldesignDfnDirectory + "\";\n")
|
||||||
|
cf.write("RefCMBDir = \"" + ExportBuildDirectory + "/" + LigoEcosystemCmbExportDirectory + "\";\n") # FIXME
|
||||||
|
cf.write("OutCMBDir = \"" + ExportBuildDirectory + "/" + RBankCmbExportDirectory + "\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("ContinentFile = \"" + LeveldesignWorldDirectory + "/" + ContinentFile + "\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("ExportCollisions = 1;\n")
|
||||||
|
cf.write("ExportAdditionnalIGs = 1;\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("ZoneRegionFile = \"" + DatabaseDirectory + "/" + LigoBaseSourceDirectory + "/" + LigoExportLand + "\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.close()
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
@ -0,0 +1,339 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build rbank
|
||||||
|
# \date 2009-03-10-22-43-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build rbank
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# Copyright (C) 2009-2014 by authors
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from process import *
|
||||||
|
from tools import *
|
||||||
|
from directories import *
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Build rbank")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
BuildIgBoxes = findTool(log, ToolDirectories, BuildIgBoxesTool, ToolSuffix)
|
||||||
|
ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix)
|
||||||
|
BuildRbank = findTool(log, ToolDirectories, BuildRbankTool, ToolSuffix)
|
||||||
|
GetNeighbors = findTool(log, ToolDirectories, GetNeighborsTool, ToolSuffix)
|
||||||
|
BuildIndoorRbank = findTool(log, ToolDirectories, BuildIndoorRbankTool, ToolSuffix)
|
||||||
|
# AiBuildWmap = findTool(log, ToolDirectories, AiBuildWmapTool, ToolSuffix)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Build rbank bbox
|
||||||
|
printLog(log, ">>> Build rbank bbox <<<")
|
||||||
|
tempBbox = ExportBuildDirectory + "/" + RbankBboxBuildDirectory + "/temp.bbox"
|
||||||
|
rebuiltBbox = False
|
||||||
|
if BuildIgBoxes == "":
|
||||||
|
toolLogFail(log, BuildIgBoxesTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankBboxBuildDirectory)
|
||||||
|
needUpdateIg = needUpdateMultiDirNoSubdirFile(log, ExportBuildDirectory, IgLookupDirectories, tempBbox)
|
||||||
|
if needUpdateIg:
|
||||||
|
printLog(log, "DETECT UPDATE IG->Bbox")
|
||||||
|
else:
|
||||||
|
printLog(log, "DETECT SKIP IG->Bbox")
|
||||||
|
needUpdateShape = needUpdateMultiDirNoSubdirFile(log, ExportBuildDirectory, ShapeLookupDirectories, tempBbox)
|
||||||
|
if needUpdateShape:
|
||||||
|
printLog(log, "DETECT UPDATE Shape->Bbox")
|
||||||
|
else:
|
||||||
|
printLog(log, "DETECT SKIP Shape->Bbox")
|
||||||
|
if needUpdateIg or needUpdateShape:
|
||||||
|
rebuiltBbox = True
|
||||||
|
printLog(log, "DETECT DECIDE UPDATE")
|
||||||
|
cf = open("build_ig_boxes.cfg", "w")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("Pathes = {\n")
|
||||||
|
for dir in IgLookupDirectories:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + dir)
|
||||||
|
cf.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
|
||||||
|
for dir in ShapeLookupDirectories:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + dir)
|
||||||
|
cf.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
|
||||||
|
cf.write("};\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("IGs = {\n")
|
||||||
|
for dir in IgLookupDirectories:
|
||||||
|
files = findFiles(log, ExportBuildDirectory + "/" + dir, "", ".ig")
|
||||||
|
for file in files:
|
||||||
|
cf.write("\t\"" + os.path.basename(file)[0:-len(".ig")] + "\", \n")
|
||||||
|
cf.write("};\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("Output = \"" + tempBbox + "\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.close()
|
||||||
|
subprocess.call([ BuildIgBoxes ])
|
||||||
|
os.remove("build_ig_boxes.cfg")
|
||||||
|
else:
|
||||||
|
printLog(log, "DETECT DECIDE SKIP")
|
||||||
|
printLog(log, "SKIP *")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, ">>> Build rbank build config <<<")
|
||||||
|
cf = open("build_rbank.cfg", "w")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("// Rbank settings\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("Verbose = " + str(RBankVerbose) + ";\n")
|
||||||
|
cf.write("CheckConsistency = " + str(RBankConsistencyCheck) + ";\n")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ZoneWeldBuildDirectory)
|
||||||
|
cf.write("ZonePath = \"" + ExportBuildDirectory + "/" + ZoneWeldBuildDirectory + "/\";\n")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SmallbankExportDirectory)
|
||||||
|
cf.write("BanksPath = \"" + ExportBuildDirectory + "/" + SmallbankExportDirectory + "/\";\n")
|
||||||
|
cf.write("Bank = \"" + ExportBuildDirectory + "/" + SmallbankExportDirectory + "/" + BankTileBankName + ".smallbank\";\n")
|
||||||
|
cf.write("ZoneExt = \".zonew\";\n")
|
||||||
|
cf.write("ZoneNHExt = \".zonenhw\";\n")
|
||||||
|
cf.write("IGBoxes = \"" + tempBbox + "\";\n")
|
||||||
|
mkPath(log, LeveldesignWorldDirectory)
|
||||||
|
cf.write("LevelDesignWorldPath = \"" + LeveldesignWorldDirectory + "\";\n")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + IgLandBuildDirectory)
|
||||||
|
cf.write("IgLandPath = \"" + ExportBuildDirectory + "/" + IgLandBuildDirectory + "\";\n")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + IgOtherBuildDirectory)
|
||||||
|
cf.write("IgVillagePath = \"" + ExportBuildDirectory + "/" + IgOtherBuildDirectory + "\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankTessellationBuildDirectory)
|
||||||
|
cf.write("TessellationPath = \"" + ExportBuildDirectory + "/" + RbankTessellationBuildDirectory + "/\";\n")
|
||||||
|
cf.write("TessellateLevel = " + str(BuildQuality) + ";\n") # BuildQuality
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("WaterThreshold = 1.0;\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("OutputRootPath = \"" + ExportBuildDirectory + "/\";\n")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankSmoothBuildDirectory)
|
||||||
|
cf.write("SmoothDirectory = \"" + RbankSmoothBuildDirectory + "/\";\n")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankRawBuildDirectory)
|
||||||
|
cf.write("RawDirectory = \"" + RbankRawBuildDirectory + "/\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("ReduceSurfaces = " + str(RbankReduceSurfaces) + ";\n")
|
||||||
|
cf.write("SmoothBorders = " + str(RbankSmoothBorders) + ";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("ComputeElevation = " + str(RbankComputeElevation) + ";\n")
|
||||||
|
cf.write("ComputeLevels = " + str(RbankComputeLevels) + ";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("LinkElements = " + str(RbankLinkElements) + ";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("CutEdges = " + str(RbankCutEdges) + ";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("UseZoneSquare = " + str(RbankUseZoneSquare) + ";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("// The whole landscape\n")
|
||||||
|
cf.write("ZoneUL = \"" + RbankZoneUl + "\";\n")
|
||||||
|
cf.write("ZoneDR = \"" + RbankZoneDr + "\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankPreprocBuildDirectory)
|
||||||
|
cf.write("PreprocessDirectory = \"" + ExportBuildDirectory + "/" + RbankPreprocBuildDirectory + "/\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("// The global retriever processing settings\n")
|
||||||
|
cf.write("GlobalRetriever = \"temp.gr\";\n")
|
||||||
|
cf.write("RetrieverBank = \"temp.rbank\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("GlobalUL = \"" + RbankZoneUl + "\";\n")
|
||||||
|
cf.write("GlobalDR = \"" + RbankZoneDr + "\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("// Which kind of stuff to do\n")
|
||||||
|
cf.write("TessellateZones = 0;\n")
|
||||||
|
cf.write("MoulineZones = 0;\n")
|
||||||
|
cf.write("ProcessRetrievers = 0;\n")
|
||||||
|
cf.write("ProcessGlobal = 0;\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("Zones = {\n")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ZoneWeldBuildDirectory)
|
||||||
|
files = findFiles(log, ExportBuildDirectory + "/" + ZoneWeldBuildDirectory, "", ".zonew")
|
||||||
|
for file in files:
|
||||||
|
cf.write("\t\"" + os.path.basename(file) + "\", \n")
|
||||||
|
cf.write("};\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("Pathes = {\n")
|
||||||
|
mkPath(log, WorldEditorFilesDirectory);
|
||||||
|
cf.write("\t\"" + WorldEditorFilesDirectory + "\", \n");
|
||||||
|
for dir in IgLookupDirectories:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + dir)
|
||||||
|
cf.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
|
||||||
|
for dir in ShapeLookupDirectories:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + dir)
|
||||||
|
cf.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
|
||||||
|
cf.write("};\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.close()
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, ">>> Build rbank check prims <<<")
|
||||||
|
if BuildRbank == "":
|
||||||
|
toolLogFail(log, BuildRbankTool, ToolSuffix)
|
||||||
|
elif ExecTimeout == "":
|
||||||
|
toolLogFail(log, ExecTimeoutTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
subprocess.call([ ExecTimeout, str(RbankBuildTesselTimeout), BuildRbank, "-C", "-p", "-g" ])
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, ">>> Build rbank process all passes <<<")
|
||||||
|
if BuildRbank == "":
|
||||||
|
toolLogFail(log, BuildRbankTool, ToolSuffix)
|
||||||
|
if GetNeighbors == "":
|
||||||
|
toolLogFail(log, GetNeighborsTool, ToolSuffix)
|
||||||
|
elif ExecTimeout == "":
|
||||||
|
toolLogFail(log, ExecTimeoutTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
zonefiles = findFiles(log, ExportBuildDirectory + "/" + ZoneWeldBuildDirectory, "", ".zonew")
|
||||||
|
zonesToBuild = []
|
||||||
|
for zonefile in zonefiles:
|
||||||
|
zone = os.path.basename(zonefile)[0:-len(".zonew")]
|
||||||
|
lr1 = ExportBuildDirectory + "/" + RbankSmoothBuildDirectory + "/" + zone + ".lr"
|
||||||
|
nearzones = subprocess.Popen([ GetNeighbors, zone ], stdout = subprocess.PIPE).communicate()[0].strip().split(" ")
|
||||||
|
printLog(log, "ZONE " + zone + ": " + str(nearzones))
|
||||||
|
zoneToBuild = 0
|
||||||
|
for nearzone in nearzones:
|
||||||
|
sourcePath = ExportBuildDirectory + "/" + ZoneWeldBuildDirectory + "/" + nearzone + ".zonew"
|
||||||
|
if (os.path.isfile(sourcePath)):
|
||||||
|
if (rebuiltBbox or needUpdate(log, sourcePath, lr1)):
|
||||||
|
zoneToBuild = 1
|
||||||
|
zonesToBuild.append(os.path.basename(zonefile))
|
||||||
|
sourcePath = ExportBuildDirectory + "/" + ZoneWeldBuildDirectory + "/" + zone + ".zonew"
|
||||||
|
if zoneToBuild:
|
||||||
|
printLog(log, sourcePath + " -> " + lr1)
|
||||||
|
# subprocess.call([ ExecTimeout, str(RbankBuildTesselTimeout), BuildRbank, "-c", "-P", "-g", os.path.basename(zonefile) ])
|
||||||
|
else:
|
||||||
|
printLog(log, "SKIP " + lr1)
|
||||||
|
while len(zonesToBuild) > 0:
|
||||||
|
processCommand = [ ExecTimeout, str(RbankBuildTesselTimeout), BuildRbank, "-c", "-P", "-g" ]
|
||||||
|
processCommand.extend(zonesToBuild[:min(len(zonesToBuild), 64)])
|
||||||
|
if len(zonesToBuild) > 64:
|
||||||
|
zonesToBuild = zonesToBuild[64:]
|
||||||
|
else:
|
||||||
|
zonesToBuild = []
|
||||||
|
print processCommand
|
||||||
|
callParallelProcess(processCommand)
|
||||||
|
flushParallelProcesses()
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, ">>> Detect modifications to rebuild lr <<<")
|
||||||
|
needUpdateCmbLr = needUpdateDirByTagLog(log, ExportBuildDirectory + "/" + RBankCmbExportDirectory, ".cmb", ExportBuildDirectory + "/" + RbankRetrieversBuildDirectory, ".lr")
|
||||||
|
if needUpdateCmbLr:
|
||||||
|
printLog(log, "DETECT UPDATE Cmb->Lr")
|
||||||
|
else:
|
||||||
|
printLog(log, "DETECT SKIP Cmb->Lr")
|
||||||
|
needUpdateCmbRbank = needUpdateDirNoSubdirFile(log, ExportBuildDirectory + "/" + RBankCmbExportDirectory, ExportBuildDirectory + "/" + RbankOutputBuildDirectory + "/" + RbankRbankName + ".rbank")
|
||||||
|
if needUpdateCmbRbank:
|
||||||
|
printLog(log, "DETECT UPDATE Cmb->Rbank")
|
||||||
|
else:
|
||||||
|
printLog(log, "DETECT SKIP Cmb->Rbank")
|
||||||
|
needUpdateLrRbank = needUpdateDirNoSubdirFile(log, ExportBuildDirectory + "/" + RbankSmoothBuildDirectory, ExportBuildDirectory + "/" + RbankOutputBuildDirectory + "/" + RbankRbankName + ".rbank")
|
||||||
|
if needUpdateLrRbank:
|
||||||
|
printLog(log, "DETECT UPDATE Lr->Rbank")
|
||||||
|
else:
|
||||||
|
printLog(log, "DETECT SKIP Lr->Rbank")
|
||||||
|
needUpdateBboxRbank = needUpdate(log, tempBbox, ExportBuildDirectory + "/" + RbankOutputBuildDirectory + "/" + RbankRbankName + ".rbank")
|
||||||
|
if needUpdateBboxRbank:
|
||||||
|
printLog(log, "DETECT UPDATE Lr->Rbank")
|
||||||
|
else:
|
||||||
|
printLog(log, "DETECT SKIP Lr->Rbank")
|
||||||
|
|
||||||
|
if rebuiltBbox or needUpdateCmbLr or needUpdateCmbRbank or needUpdateLrRbank or needUpdateBboxRbank:
|
||||||
|
printLog(log, "DETECT DECIDE UPDATE")
|
||||||
|
printLog(log, ">>> Build rbank process global <<<") # This generates temp lr files. TODO: Check if the LR changed?
|
||||||
|
if BuildRbank == "":
|
||||||
|
toolLogFail(log, BuildRbankTool, ToolSuffix)
|
||||||
|
elif ExecTimeout == "":
|
||||||
|
toolLogFail(log, ExecTimeoutTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
subprocess.call([ ExecTimeout, str(RbankBuildProcglobalTimeout), BuildRbank, "-c", "-P", "-G" ])
|
||||||
|
printLog(log, "")
|
||||||
|
os.remove("build_rbank.cfg")
|
||||||
|
|
||||||
|
printLog(log, ">>> Build rbank indoor <<<") # This generates the retrievers for the ig that have the cmb export
|
||||||
|
if BuildIndoorRbank == "":
|
||||||
|
toolLogFail(log, BuildIndoorRbankTool, ToolSuffix)
|
||||||
|
elif ExecTimeout == "":
|
||||||
|
toolLogFail(log, ExecTimeoutTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
retrieversDir = ExportBuildDirectory + "/" + RbankRetrieversBuildDirectory
|
||||||
|
mkPath(log, retrieversDir)
|
||||||
|
removeFilesRecursiveExt(log, retrieversDir, ".rbank")
|
||||||
|
removeFilesRecursiveExt(log, retrieversDir, ".gr")
|
||||||
|
removeFilesRecursiveExt(log, retrieversDir, ".lr")
|
||||||
|
cf = open("build_indoor_rbank.cfg", "w")
|
||||||
|
cf.write("\n")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RBankCmbExportDirectory)
|
||||||
|
cf.write("MeshPath = \"" + ExportBuildDirectory + "/" + RBankCmbExportDirectory + "/\";\n")
|
||||||
|
# cf.write("Meshes = { };\n")
|
||||||
|
cf.write("Meshes = \n")
|
||||||
|
cf.write("{\n")
|
||||||
|
meshFiles = findFilesNoSubdir(log, ExportBuildDirectory + "/" + RBankCmbExportDirectory, ".cmb")
|
||||||
|
lenCmbExt = len(".cmb")
|
||||||
|
for file in meshFiles:
|
||||||
|
cf.write("\t\"" + file[0:-lenCmbExt] + "\", \n")
|
||||||
|
cf.write("};\n")
|
||||||
|
cf.write("OutputPath = \"" + retrieversDir + "/\";\n")
|
||||||
|
# mkPath(log, ExportBuildDirectory + "/" + RbankOutputBuildDirectory)
|
||||||
|
# cf.write("OutputPath = \"" + ExportBuildDirectory + "/" + RbankOutputBuildDirectory + "/\";\n")
|
||||||
|
cf.write("OutputPrefix = \"unused\";\n")
|
||||||
|
cf.write("Merge = 1;\n")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankSmoothBuildDirectory)
|
||||||
|
cf.write("MergePath = \"" + ExportBuildDirectory + "/" + RbankSmoothBuildDirectory + "/\";\n")
|
||||||
|
cf.write("MergeInputPrefix = \"temp\";\n")
|
||||||
|
cf.write("MergeOutputPrefix = \"tempMerged\";\n")
|
||||||
|
# cf.write("MergeOutputPrefix = \"" + RbankRbankName + "\";\n")
|
||||||
|
cf.write("AddToRetriever = 1;\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.close()
|
||||||
|
subprocess.call([ ExecTimeout, str(RbankBuildIndoorTimeout), BuildIndoorRbank ])
|
||||||
|
os.remove("build_indoor_rbank.cfg")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
retrieversDir = ExportBuildDirectory + "/" + RbankRetrieversBuildDirectory
|
||||||
|
mkPath(log, retrieversDir)
|
||||||
|
outputDir = ExportBuildDirectory + "/" + RbankOutputBuildDirectory
|
||||||
|
mkPath(log, outputDir)
|
||||||
|
printLog(log, ">>> Move gr, rbank and lr <<<") # This simply renames everything
|
||||||
|
if needUpdateDirNoSubdir(log, retrieversDir, outputDir):
|
||||||
|
removeFilesRecursiveExt(log, outputDir, ".rbank")
|
||||||
|
removeFilesRecursiveExt(log, outputDir, ".gr")
|
||||||
|
removeFilesRecursiveExt(log, outputDir, ".lr")
|
||||||
|
copyFilesRenamePrefixExt(log, retrieversDir, outputDir, "tempMerged", RbankRbankName, ".rbank")
|
||||||
|
copyFilesRenamePrefixExt(log, retrieversDir, outputDir, "tempMerged", RbankRbankName, ".gr")
|
||||||
|
copyFilesRenamePrefixExt(log, retrieversDir, outputDir, "tempMerged_", RbankRbankName + "_", ".lr")
|
||||||
|
else:
|
||||||
|
printLog(log, "SKIP *")
|
||||||
|
else:
|
||||||
|
printLog(log, "DETECT DECIDE SKIP")
|
||||||
|
printLog(log, "SKIP *")
|
||||||
|
|
||||||
|
# Remove pacs.packed_prims when done
|
||||||
|
if os.path.isfile("pacs.packed_prims"):
|
||||||
|
os.remove("pacs.packed_prims")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
@ -0,0 +1,198 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build shape
|
||||||
|
# \date 2010-05-24 13:42GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build shape
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# Copyright (C) 2009-2014 by authors
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from process import *
|
||||||
|
from tools import *
|
||||||
|
from directories import *
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Build shape")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix)
|
||||||
|
BuildShadowSkin = findTool(log, ToolDirectories, BuildShadowSkinTool, ToolSuffix)
|
||||||
|
BuildClodtex = findTool(log, ToolDirectories, BuildClodtexTool, ToolSuffix)
|
||||||
|
LightmapOptimizer = findTool(log, ToolDirectories, LightmapOptimizerTool, ToolSuffix)
|
||||||
|
TgaToDds = findTool(log, ToolDirectories, TgaToDdsTool, ToolSuffix)
|
||||||
|
BuildCoarseMesh = findTool(log, ToolDirectories, BuildCoarseMeshTool, ToolSuffix)
|
||||||
|
|
||||||
|
shapeDirectory = ExportBuildDirectory + "/" + ShapeNotOptimizedExportDirectory
|
||||||
|
if BuildShadowSkinEnabled:
|
||||||
|
mkPath(log, shapeDirectory)
|
||||||
|
shadowSkinBuildDirectory = ExportBuildDirectory + "/" + ShapeShadowSkinBuildDirectory
|
||||||
|
printLog(log, ">>> BuildShadowSkin <<<")
|
||||||
|
shadowSkinShapes = findFilesNoSubdir(log, shapeDirectory, ".shape")
|
||||||
|
for shadowSkinShape in shadowSkinShapes:
|
||||||
|
srcShape = shapeDirectory + "/" + shadowSkinShape
|
||||||
|
dstShape = shadowSkinBuildDirectory + "/" + shadowSkinShape
|
||||||
|
if needUpdateLogRemoveDest(log, srcShape, dstShape):
|
||||||
|
subprocess.call([ BuildShadowSkin, srcShape, dstShape, str(BuildShadowSkinRatio), str(BuildShadowSkinMaxface) ])
|
||||||
|
shapeDirectory = shadowSkinBuildDirectory
|
||||||
|
|
||||||
|
mkPath(log, shapeDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ShapeClodtexBuildDirectory)
|
||||||
|
if ClodConfigFile != "":
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ClodExportDirectory)
|
||||||
|
printLog(log, ">>> Build CLodTex <<<")
|
||||||
|
subprocess.call([ BuildClodtex, "-d", DatabaseDirectory + "/" + ClodConfigFile, ExportBuildDirectory + "/" + ClodExportDirectory, shapeDirectory, ExportBuildDirectory + "/" + ShapeClodtexBuildDirectory ])
|
||||||
|
else:
|
||||||
|
printLog(log, ">>> Copy Shape <<<")
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, shapeDirectory, ExportBuildDirectory + "/" + ShapeClodtexBuildDirectory, ".shape")
|
||||||
|
|
||||||
|
printLog(log, ">>> Copy non-ShadowSkin non-CLodTex Shape <<<")
|
||||||
|
shapeDirectory = ExportBuildDirectory + "/" + ShapeNotOptimizedExportDirectory
|
||||||
|
mkPath(log, shapeDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ShapeClodtexBuildDirectory)
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, shapeDirectory, ExportBuildDirectory + "/" + ShapeClodtexBuildDirectory, ".shape")
|
||||||
|
shapeDirectory = ExportBuildDirectory + "/" + ShapeClodtexBuildDirectory
|
||||||
|
|
||||||
|
# copy lightmap_not_optimized to lightmap
|
||||||
|
printLog(log, ">>> Optimize lightmaps <<<")
|
||||||
|
loPathLightmapsOriginal = ExportBuildDirectory + "/" + ShapeLightmapNotOptimizedExportDirectory
|
||||||
|
loPathShapesOriginal = ExportBuildDirectory + "/" + ShapeClodtexBuildDirectory
|
||||||
|
mkPath(log, loPathLightmapsOriginal)
|
||||||
|
loPathLightmaps = ExportBuildDirectory + "/" + ShapeLightmapBuildDirectory
|
||||||
|
loPathShapes = ExportBuildDirectory + "/" + ShapeOptimizedBuildDirectory
|
||||||
|
loPathTags = ExportBuildDirectory + "/" + ShapeTagExportDirectory
|
||||||
|
mkPath(log, loPathLightmaps)
|
||||||
|
mkPath(log, loPathShapes)
|
||||||
|
mkPath(log, loPathTags)
|
||||||
|
if needUpdateDirByTagLog(log, loPathLightmapsOriginal, ".txt", loPathLightmaps, ".txt") or needUpdateDirNoSubdir(log, loPathLightmapsOriginal, loPathLightmaps) or needUpdateDirNoSubdir(log, loPathShapesOriginal, loPathShapes) or needUpdateDirNoSubdir(log, loPathShapes, loPathLightmaps) or needUpdateDirNoSubdir(log, loPathTags, loPathLightmaps):
|
||||||
|
removeFilesRecursive(log, loPathLightmaps)
|
||||||
|
copyFiles(log, loPathLightmapsOriginal, loPathLightmaps)
|
||||||
|
removeFilesRecursive(log, loPathShapes)
|
||||||
|
copyFiles(log, loPathShapesOriginal, loPathShapes)
|
||||||
|
# Optimize lightmaps if any. Additionnaly, output a file indicating which lightmaps are 8 bits
|
||||||
|
# lightmap_optimizer <path_lightmaps> <path_shapes> [path_tags] [path_flag8bit]
|
||||||
|
subprocess.call([ LightmapOptimizer, loPathLightmaps, loPathShapes, loPathTags, ExportBuildDirectory + "/" + ShapeLightmapBuildDirectory + "/list_lm_8bit.txt" ])
|
||||||
|
else:
|
||||||
|
printLog(log, "SKIP *")
|
||||||
|
|
||||||
|
# Convert lightmap in 16 bits mode if they are not 8 bits lightmap
|
||||||
|
printLog(log, ">>> Convert lightmaps in 16 or 8 bits <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ShapeLightmapBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ShapeLightmap16BitsBuildDirectory)
|
||||||
|
lightMapTgas = findFilesNoSubdir(log, ExportBuildDirectory + "/" + ShapeLightmapBuildDirectory, ".tga")
|
||||||
|
listLm8Bit = [ ]
|
||||||
|
listLm8BitFile = open(ExportBuildDirectory + "/" + ShapeLightmapBuildDirectory + "/list_lm_8bit.txt", "r")
|
||||||
|
for line in listLm8BitFile:
|
||||||
|
lineStrip = line.strip()
|
||||||
|
if (len(lineStrip) > 0):
|
||||||
|
listLm8Bit += [ lineStrip ]
|
||||||
|
for lightMapTga in lightMapTgas:
|
||||||
|
srcTga = ExportBuildDirectory + "/" + ShapeLightmapBuildDirectory + "/" + lightMapTga
|
||||||
|
dstTga = ExportBuildDirectory + "/" + ShapeLightmap16BitsBuildDirectory + "/" + lightMapTga
|
||||||
|
if needUpdateLogRemoveDest(log, srcTga, dstTga):
|
||||||
|
if lightMapTga in listLm8Bit: # THIS MAY NOT WORK, PLEASE VERIFY CONTENTS OF list_lm_8bit.txt!!!
|
||||||
|
subprocess.call([ TgaToDds, srcTga, "-o", dstTga, "-a", "tga8" ])
|
||||||
|
else:
|
||||||
|
subprocess.call([ TgaToDds, srcTga, "-o", dstTga, "-a", "tga16" ])
|
||||||
|
|
||||||
|
# Corse meshes for this process ?
|
||||||
|
if len(CoarseMeshTextureNames) > 0:
|
||||||
|
printLog(log, ">>> Build coarse meshes <<<")
|
||||||
|
shapeWithCoarseMesh = ExportBuildDirectory + "/" + ShapeWithCoarseMeshExportDirectory
|
||||||
|
mkPath(log, shapeWithCoarseMesh)
|
||||||
|
shapeWithCoarseMeshBuilded = ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory
|
||||||
|
mkPath(log, shapeWithCoarseMeshBuilded)
|
||||||
|
# This builds from shapeWithCoarseMesh .shape to shapeWithCoarseMesh .tga
|
||||||
|
# And from shapeWithCoarseMesh .shape to shapeWithCoarseMeshBuilded .shape
|
||||||
|
# Then builds from shapeWithCoarseMesh .tga to shapeWithCoarseMeshBuilded .tga
|
||||||
|
# Depends on MapLookupDirectories
|
||||||
|
needUpdateMaps = needUpdateMultiDirNoSubdirMultiFileExt(log, ExportBuildDirectory, MapLookupDirectories, shapeWithCoarseMesh, CoarseMeshTextureNames, ".tga") or needUpdateMultiDirNoSubdir(log, ExportBuildDirectory, MapLookupDirectories, shapeWithCoarseMeshBuilded)
|
||||||
|
if needUpdateMaps:
|
||||||
|
printLog(log, "DETECT UPDATE Maps->*")
|
||||||
|
else:
|
||||||
|
printLog(log, "DETECT SKIP Maps->*")
|
||||||
|
needUpdateShapeShape = needUpdateDirByTagLog(log, shapeWithCoarseMesh, ".shape", shapeWithCoarseMeshBuilded, ".shape")
|
||||||
|
if needUpdateShapeShape:
|
||||||
|
printLog(log, "DETECT UPDATE Shape->Shape")
|
||||||
|
else:
|
||||||
|
printLog(log, "DETECT SKIP Shape->Shape")
|
||||||
|
needUpdateShapeCoarse = needUpdateDirNoSubdirExtMultiFileExt(log, shapeWithCoarseMesh, ".shape", shapeWithCoarseMesh, CoarseMeshTextureNames, ".tga")
|
||||||
|
if needUpdateShapeCoarse:
|
||||||
|
printLog(log, "DETECT UPDATE Shape->Coarse")
|
||||||
|
else:
|
||||||
|
printLog(log, "DETECT SKIP Shape->Coarse")
|
||||||
|
if needUpdateMaps or needUpdateShapeShape or needUpdateShapeCoarse:
|
||||||
|
cf = open("config_generated.cfg", "w")
|
||||||
|
cf.write("texture_mul_size = " + TextureMulSizeValue + ";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("search_path = \n")
|
||||||
|
cf.write("{\n")
|
||||||
|
cf.write("\t\"" + shapeWithCoarseMesh + "\", \n")
|
||||||
|
for dir in MapLookupDirectories:
|
||||||
|
cf.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
|
||||||
|
cf.write("};\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("list_mesh = \n")
|
||||||
|
cf.write("{\n")
|
||||||
|
# For each shape with coarse mesh
|
||||||
|
files = findFiles(log, shapeWithCoarseMesh, "", ".shape")
|
||||||
|
for file in files:
|
||||||
|
sourceFile = shapeWithCoarseMesh + "/" + file
|
||||||
|
if os.path.isfile(sourceFile):
|
||||||
|
destFile = shapeWithCoarseMeshBuilded + "/" + file
|
||||||
|
cf.write("\t\"" + file + "\", \"" + destFile + "\", \n")
|
||||||
|
cf.write("};\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("output_textures = \n")
|
||||||
|
cf.write("{\n")
|
||||||
|
# For each shape with coarse mesh
|
||||||
|
for tn in CoarseMeshTextureNames:
|
||||||
|
cf.write("\t\"" + shapeWithCoarseMesh + "/" + tn + ".tga\", \n")
|
||||||
|
cf.write("};\n")
|
||||||
|
cf.close()
|
||||||
|
subprocess.call([ BuildCoarseMesh, "config_generated.cfg" ])
|
||||||
|
os.remove("config_generated.cfg")
|
||||||
|
needUpdateCoarse = needUpdateDirNoSubdirExtMultiFileExt(log, shapeWithCoarseMesh, ".tga", shapeWithCoarseMeshBuilded, CoarseMeshTextureNames, ".dds")
|
||||||
|
if needUpdateCoarse:
|
||||||
|
printLog(log, "DETECT UPDATE Coarse->DDS")
|
||||||
|
else:
|
||||||
|
printLog(log, "DETECT SKIP Coarse->DDS")
|
||||||
|
# Convert the coarse texture to dds
|
||||||
|
if needUpdateCoarse:
|
||||||
|
for tn in CoarseMeshTextureNames:
|
||||||
|
subprocess.call([ TgaToDds, shapeWithCoarseMesh + "/" + tn + ".tga", "-o", shapeWithCoarseMeshBuilded + "/" + tn + ".dds", "-a", "5" ])
|
||||||
|
else:
|
||||||
|
printLog(log, ">>> No coarse meshes <<<")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
@ -0,0 +1,175 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build zone
|
||||||
|
# \date 2009-03-10-22-23-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build zone
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# Copyright (C) 2009-2014 by authors
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from process import *
|
||||||
|
from tools import *
|
||||||
|
from directories import *
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Build zone")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
ZoneDependencies = findTool(log, ToolDirectories, ZoneDependenciesTool, ToolSuffix)
|
||||||
|
ZoneWelder = findTool(log, ToolDirectories, ZoneWelderTool, ToolSuffix)
|
||||||
|
ZoneElevation = findTool(log, ToolDirectories, ZoneElevationTool, ToolSuffix)
|
||||||
|
ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# We are in BEST mode
|
||||||
|
if BuildQuality == 1:
|
||||||
|
printLog(log, ">>> Build zone dependencies <<<")
|
||||||
|
if ZoneDependencies == "":
|
||||||
|
toolLogFail(log, ZoneDependenciesTool, ToolSuffix)
|
||||||
|
elif ExecTimeout == "":
|
||||||
|
toolLogFail(log, ExecTimeoutTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ZoneExportDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ZoneDependBuildDirectory)
|
||||||
|
needUpdateZoneDepend = needUpdateDirByLowercaseTagLog(log, ExportBuildDirectory + "/" + ZoneExportDirectory, ".zone", ExportBuildDirectory + "/" + ZoneDependBuildDirectory, ".depend")
|
||||||
|
if needUpdateZoneDepend:
|
||||||
|
printLog(log, "DETECT UPDATE Zone->Depend")
|
||||||
|
else:
|
||||||
|
printLog(log, "DETECT SKIP Zone->Depend")
|
||||||
|
needUpdateContinentDepend = needUpdateFileDirNoSubdir(log, LeveldesignWorldDirectory + "/" + ContinentFile, ExportBuildDirectory + "/" + ZoneDependBuildDirectory)
|
||||||
|
if needUpdateContinentDepend:
|
||||||
|
printLog(log, "DETECT UPDATE Continent->Depend")
|
||||||
|
else:
|
||||||
|
printLog(log, "DETECT SKIP Continent->Depend")
|
||||||
|
needUpdateSearchPaths = needUpdateMultiDirNoSubdir(log, ExportBuildDirectory, PropertiesExportBuildSearchPaths, ExportBuildDirectory + "/" + ZoneDependBuildDirectory)
|
||||||
|
if needUpdateSearchPaths:
|
||||||
|
printLog(log, "DETECT UPDATE SearchPaths->Depend")
|
||||||
|
else:
|
||||||
|
printLog(log, "DETECT SKIP SearchPaths->Depend")
|
||||||
|
if needUpdateZoneDepend or needUpdateContinentDepend or needUpdateSearchPaths:
|
||||||
|
printLog(log, "DETECT DECIDE UPDATE")
|
||||||
|
mkPath(log, ActiveProjectDirectory + "/generated")
|
||||||
|
configFile = ActiveProjectDirectory + "/generated/zone_dependencies.cfg"
|
||||||
|
templateCf = open(ActiveProjectDirectory + "/generated/properties.cfg", "r")
|
||||||
|
cf = open(configFile, "w")
|
||||||
|
for line in templateCf:
|
||||||
|
cf.write(line)
|
||||||
|
cf.write("\n");
|
||||||
|
cf.write("level_design_directory = \"" + LeveldesignDirectory + "\";\n");
|
||||||
|
cf.write("level_design_world_directory = \"" + LeveldesignWorldDirectory + "\";\n");
|
||||||
|
cf.write("level_design_dfn_directory = \"" + LeveldesignDfnDirectory + "\";\n");
|
||||||
|
cf.write("continent_name = \"" + ContinentName + "\";\n");
|
||||||
|
cf.write("\n");
|
||||||
|
cf.close()
|
||||||
|
|
||||||
|
for zoneRegion in ZoneRegions:
|
||||||
|
# zone_dependencies [properties.cfg] [firstZone.zone] [lastzone.zone] [output_dependencies.cfg]
|
||||||
|
subprocess.call([ ExecTimeout, str(ZoneBuildDependTimeout), ZoneDependencies, configFile, ExportBuildDirectory + "/" + ZoneExportDirectory + "/" + zoneRegion[0] + ".zone", ExportBuildDirectory + "/" + ZoneExportDirectory + "/" + zoneRegion[1] + ".zone", ExportBuildDirectory + "/" + ZoneDependBuildDirectory + "/doomy.depend" ])
|
||||||
|
else:
|
||||||
|
printLog(log, "DETECT DECIDE SKIP")
|
||||||
|
printLog(log, "SKIP *")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each zone directory
|
||||||
|
#printLog(log, ">>> Build zone weld <<<")
|
||||||
|
#if ZoneWelder == "":
|
||||||
|
# toolLogFail(log, ZoneWelderTool, ToolSuffix)
|
||||||
|
#elif ExecTimeout == "":
|
||||||
|
# toolLogFail(log, ExecTimeoutTool, ToolSuffix)
|
||||||
|
#else:
|
||||||
|
# mkPath(log, ExportBuildDirectory + "/" + ZoneExportDirectory)
|
||||||
|
# mkPath(log, ExportBuildDirectory + "/" + ZoneWeldBuildDirectory)
|
||||||
|
# files = findFiles(log, ExportBuildDirectory + "/" + ZoneExportDirectory, "", ".zone")
|
||||||
|
# for file in files:
|
||||||
|
# sourceFile = ExportBuildDirectory + "/" + ZoneExportDirectory + "/" + file
|
||||||
|
# destFile = ExportBuildDirectory + "/" + ZoneWeldBuildDirectory + "/" + os.path.basename(file)[0:-len(".zone")] + ".zonew"
|
||||||
|
# if needUpdateLogRemoveDest(log, sourceFile, destFile):
|
||||||
|
# subprocess.call([ ExecTimeout, str(ZoneBuildWeldTimeout), ZoneWelder, sourceFile, destFile ])
|
||||||
|
#printLog(log, "")
|
||||||
|
|
||||||
|
# For each zone directory
|
||||||
|
printLog(log, ">>> Weld zone without heightmap <<<")
|
||||||
|
if ZoneWelder == "":
|
||||||
|
toolLogFail(log, ZoneWelderTool, ToolSuffix)
|
||||||
|
elif ExecTimeout == "":
|
||||||
|
toolLogFail(log, ExecTimeoutTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ZoneExportDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ZoneWeldBuildDirectory)
|
||||||
|
files = findFiles(log, ExportBuildDirectory + "/" + ZoneExportDirectory, "", ".zonenh")
|
||||||
|
for file in files:
|
||||||
|
sourceFile = ExportBuildDirectory + "/" + ZoneExportDirectory + "/" + file
|
||||||
|
destFile = ExportBuildDirectory + "/" + ZoneWeldBuildDirectory + "/" + os.path.basename(file)[0:-len(".zonenh")] + ".zonenhw"
|
||||||
|
if needUpdateLogRemoveDest(log, sourceFile, destFile):
|
||||||
|
subprocess.call([ ExecTimeout, str(ZoneBuildWeldTimeout), ZoneWelder, sourceFile, destFile ])
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, ">>> Apply zone heightmap to welded zone <<<")
|
||||||
|
if ZoneElevation == "":
|
||||||
|
toolLogFail(log, ZoneElevationTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ZoneWeldBuildDirectory)
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + LigoBaseSourceDirectory);
|
||||||
|
land = DatabaseDirectory + "/" + LigoBaseSourceDirectory + "/" + LigoExportLand
|
||||||
|
heightMap1 = DatabaseDirectory + "/" + LigoBaseSourceDirectory + "/" + LigoExportHeightmap1
|
||||||
|
heightMap2 = DatabaseDirectory + "/" + LigoBaseSourceDirectory + "/" + LigoExportHeightmap2
|
||||||
|
files = findFiles(log, ExportBuildDirectory + "/" + ZoneWeldBuildDirectory, "", ".zonenhw")
|
||||||
|
for file in files:
|
||||||
|
sourceFile = ExportBuildDirectory + "/" + ZoneWeldBuildDirectory + "/" + file
|
||||||
|
destFile = ExportBuildDirectory + "/" + ZoneWeldBuildDirectory + "/" + os.path.basename(file)[0:-len(".zonenhw")] + ".zone"
|
||||||
|
if needUpdateLogRemoveDest(log, sourceFile, destFile):
|
||||||
|
command = [ ZoneElevation, sourceFile, destFile, "--land", land, "--heightmap", heightMap1, "--zfactor", LigoExportZFactor1, "--heightmap2", heightMap2, "--zfactor2", LigoExportZFactor2 ]
|
||||||
|
if LigoExportExtendCoords != 0:
|
||||||
|
command.append("--extendcoords")
|
||||||
|
callParallelProcess(command)
|
||||||
|
flushParallelProcesses()
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, ">>> Re-weld zone with heightmap <<<")
|
||||||
|
if ZoneWelder == "":
|
||||||
|
toolLogFail(log, ZoneWelderTool, ToolSuffix)
|
||||||
|
elif ExecTimeout == "":
|
||||||
|
toolLogFail(log, ExecTimeoutTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ZoneWeldBuildDirectory)
|
||||||
|
files = findFiles(log, ExportBuildDirectory + "/" + ZoneWeldBuildDirectory, "", ".zone")
|
||||||
|
for file in files:
|
||||||
|
sourceFile = ExportBuildDirectory + "/" + ZoneWeldBuildDirectory + "/" + file
|
||||||
|
destFile = ExportBuildDirectory + "/" + ZoneWeldBuildDirectory + "/" + os.path.basename(file)[0:-len(".zone")] + ".zonew"
|
||||||
|
if needUpdateLogRemoveDest(log, sourceFile, destFile):
|
||||||
|
subprocess.call([ ExecTimeout, str(ZoneBuildWeldTimeout), ZoneWelder, sourceFile, destFile ])
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
@ -0,0 +1,105 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build zone_light
|
||||||
|
# \date 2009-03-11-13-45-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build zone_light
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# Copyright (C) 2009-2014 by authors
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from process import *
|
||||||
|
from tools import *
|
||||||
|
from directories import *
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Build zone_light")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix)
|
||||||
|
ZoneLighter = findTool(log, ToolDirectories, ZoneLighterTool, ToolSuffix)
|
||||||
|
ZoneIgLighter = findTool(log, ToolDirectories, ZoneIgLighterTool, ToolSuffix)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each zone_light directory
|
||||||
|
printLog(log, ">>> Build zone_light <<<")
|
||||||
|
if ZoneLighter == "":
|
||||||
|
toolLogFail(log, ZoneLighterTool, ToolSuffix)
|
||||||
|
elif ExecTimeout == "":
|
||||||
|
toolLogfail(log, ExecTimeoutTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
srcDir = ExportBuildDirectory + "/" + ZoneWeldBuildDirectory
|
||||||
|
mkPath(log, srcDir)
|
||||||
|
destDir = ExportBuildDirectory + "/" + ZoneLightBuildDirectory
|
||||||
|
mkPath(log, destDir)
|
||||||
|
dependDir = ExportBuildDirectory + "/" + ZoneDependBuildDirectory
|
||||||
|
mkPath(log, dependDir)
|
||||||
|
files = findFiles(log, srcDir, "", ".zonew")
|
||||||
|
for file in files:
|
||||||
|
srcFile = srcDir + "/" + file
|
||||||
|
destFile = destDir + "/" + file[0:-len(".zonew")] + ".zonel"
|
||||||
|
if (needUpdateLogRemoveDest(log, srcFile, destFile)):
|
||||||
|
dependFile = dependDir + "/" + file[0:-len(".zonew")] + ".depend"
|
||||||
|
callParallelProcess([ ExecTimeout, str(ZoneLightBuildTimeout), ZoneLighter, srcFile, destFile, ActiveProjectDirectory + "/generated/properties.cfg", dependFile ])
|
||||||
|
flushParallelProcesses()
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each zone_light ig
|
||||||
|
printLog(log, ">>> Build zone_light ig <<<")
|
||||||
|
if ZoneIgLighter == "":
|
||||||
|
toolLogFail(log, ZoneIgLighterTool, ToolSuffix)
|
||||||
|
elif ExecTimeout == "":
|
||||||
|
toolLogfail(log, ExecTimeoutTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
srcDir = ExportBuildDirectory + "/" + ZoneLightBuildDirectory
|
||||||
|
mkPath(log, srcDir)
|
||||||
|
igsrcDir = ExportBuildDirectory + "/" + IgLandBuildDirectory
|
||||||
|
mkPath(log, igsrcDir)
|
||||||
|
destDir = ExportBuildDirectory + "/" + ZoneLightIgLandBuildDirectory
|
||||||
|
mkPath(log, destDir)
|
||||||
|
dependDir = ExportBuildDirectory + "/" + ZoneDependBuildDirectory
|
||||||
|
mkPath(log, dependDir)
|
||||||
|
files = findFiles(log, srcDir, "", ".zonel")
|
||||||
|
for file in files:
|
||||||
|
igsrcFile = igsrcDir + "/" + os.path.basename(file)[0:-len(".zonel")] + ".ig"
|
||||||
|
destFile = destDir + "/" + os.path.basename(file)[0:-len(".zonel")] + ".ig"
|
||||||
|
if (os.path.isfile(igsrcFile)):
|
||||||
|
if (needUpdateLogRemoveDest(log, igsrcFile, destFile)):
|
||||||
|
srcFile = srcDir + "/" + file
|
||||||
|
dependFile = dependDir + "/" + file[0:-len(".zonel")] + ".depend"
|
||||||
|
callParallelProcess([ ExecTimeout, str(ZoneIgLightBuildTimeout), ZoneIgLighter, srcFile, destFile, ActiveProjectDirectory + "/generated/properties.cfg", dependFile ])
|
||||||
|
flushParallelProcesses()
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
@ -0,0 +1,70 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# Copyright (C) 2014 by authors
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("../configuration")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from tools import *
|
||||||
|
os.chdir(TranslationDirectory)
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Make and merge all translations")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
|
||||||
|
TranslationTools = findTool(log, ToolDirectories, TranslationToolsTool, ToolSuffix)
|
||||||
|
try:
|
||||||
|
subprocess.call([ TranslationTools, "make_phrase_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "merge_phrase_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "make_clause_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "merge_clause_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "make_words_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "merge_words_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "make_string_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "merge_string_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "clean_string_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "make_r2_string_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "merge_r2_string_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "clean_r2_string_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "clean_words_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "clean_clause_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "clean_phrase_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "make_worksheet_diff", "bot_names.txt" ])
|
||||||
|
subprocess.call([ TranslationTools, "merge_worksheet_diff", "bot_names.txt" ])
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "<" + processName + "> " + str(e))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
if os.path.isfile("make_merge_all.log"):
|
||||||
|
os.remove("make_merge_all.log")
|
||||||
|
shutil.copy("log.log", "make_merge_all_" + time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + ".log")
|
||||||
|
shutil.move("log.log", "make_merge_all.log")
|
||||||
|
|
||||||
|
raw_input("PRESS ANY KEY TO EXIT")
|
@ -0,0 +1,115 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# Copyright (C) 2014 by authors
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("../configuration")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from tools import *
|
||||||
|
os.chdir(TranslationDirectory)
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Make, merge and clean work")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
|
||||||
|
TranslationTools = findTool(log, ToolDirectories, TranslationToolsTool, ToolSuffix)
|
||||||
|
printLog(log, ">>> Override languages.txt <<<")
|
||||||
|
if not os.path.isfile("make_merge_wk_languages.txt"):
|
||||||
|
shutil.move("languages.txt", "make_merge_wk_languages.txt")
|
||||||
|
languagesTxt = open("languages.txt", "w")
|
||||||
|
languagesTxt.write("wk\n")
|
||||||
|
languagesTxt.close()
|
||||||
|
|
||||||
|
|
||||||
|
printLog(log, ">>> Merge diff <<<") # This is necessary, because when we crop lines, we should only do this from untranslated files
|
||||||
|
try:
|
||||||
|
subprocess.call([ TranslationTools, "merge_phrase_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "merge_clause_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "merge_words_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "merge_string_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "merge_r2_string_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "merge_worksheet_diff", "bot_names.txt" ])
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "<" + processName + "> " + str(e))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
|
||||||
|
printLog(log, ">>> Make diff <<<")
|
||||||
|
try:
|
||||||
|
subprocess.call([ TranslationTools, "make_phrase_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "make_clause_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "make_words_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "make_string_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "make_r2_string_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "make_worksheet_diff", "bot_names.txt" ])
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "<" + processName + "> " + str(e))
|
||||||
|
|
||||||
|
|
||||||
|
printLog(log, ">>> Mark diffs as translated <<<")
|
||||||
|
diffFiles = os.listdir("diff")
|
||||||
|
for diffFile in diffFiles:
|
||||||
|
if "wk_diff_" in diffFile:
|
||||||
|
printLog(log, "DIFF " + "diff/" + diffFile)
|
||||||
|
subprocess.call([ TranslationTools, "crop_lines", "diff/" + diffFile, "3" ])
|
||||||
|
|
||||||
|
#printLog(log, ">>> Clean diff <<<")
|
||||||
|
#try:
|
||||||
|
# subprocess.call([ TranslationTools, "clean_string_diff" ])
|
||||||
|
# subprocess.call([ TranslationTools, "clean_phrase_diff" ])
|
||||||
|
# subprocess.call([ TranslationTools, "clean_clause_diff" ])
|
||||||
|
# subprocess.call([ TranslationTools, "clean_words_diff" ])
|
||||||
|
#except Exception, e:
|
||||||
|
# printLog(log, "<" + processName + "> " + str(e))
|
||||||
|
#printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, ">>> Merge diff <<<")
|
||||||
|
try:
|
||||||
|
subprocess.call([ TranslationTools, "merge_phrase_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "merge_clause_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "merge_words_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "merge_string_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "merge_r2_string_diff" ])
|
||||||
|
subprocess.call([ TranslationTools, "merge_worksheet_diff", "bot_names.txt" ])
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "<" + processName + "> " + str(e))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
|
||||||
|
printLog(log, ">>> Restore languages.txt <<<")
|
||||||
|
os.remove("languages.txt")
|
||||||
|
shutil.move("make_merge_wk_languages.txt", "languages.txt")
|
||||||
|
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
if os.path.isfile("make_merge_wk.log"):
|
||||||
|
os.remove("make_merge_wk.log")
|
||||||
|
shutil.copy("log.log", "make_merge_wk_" + time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + ".log")
|
||||||
|
shutil.move("log.log", "make_merge_wk.log")
|
||||||
|
|
||||||
|
raw_input("PRESS ANY KEY TO EXIT")
|
File diff suppressed because it is too large
Load Diff
@ -1,94 +1,94 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 1_export.py
|
# \file 1_export.py
|
||||||
# \brief Run all export processes
|
# \brief Run all export processes
|
||||||
# \date 2009-02-18 09:22GMT
|
# \date 2009-02-18 09:22GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Run all export processes
|
# Run all export processes
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
||||||
sys.path.append("configuration")
|
sys.path.append("configuration")
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Export')
|
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Export')
|
||||||
# parser.add_argument('--haltonerror', '-eh', action='store_true')
|
# parser.add_argument('--haltonerror', '-eh', action='store_true')
|
||||||
parser.add_argument('--includeproject', '-ipj', nargs='+')
|
parser.add_argument('--includeproject', '-ipj', nargs='+')
|
||||||
parser.add_argument('--excludeproject', '-epj', nargs='+')
|
parser.add_argument('--excludeproject', '-epj', nargs='+')
|
||||||
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
||||||
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
if not args.includeproject == None and not args.excludeproject == None:
|
if not args.includeproject == None and not args.excludeproject == None:
|
||||||
print "ERROR --includeproject cannot be combined with --excludeproject, exit."
|
print "ERROR --includeproject cannot be combined with --excludeproject, exit."
|
||||||
exit()
|
exit()
|
||||||
|
|
||||||
if not args.includeprocess == None and not args.excludeprocess == None:
|
if not args.includeprocess == None and not args.excludeprocess == None:
|
||||||
print "ERROR --includeprocess cannot be combined with --excludeprocess, exit."
|
print "ERROR --includeprocess cannot be combined with --excludeprocess, exit."
|
||||||
exit()
|
exit()
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite_local import *
|
||||||
from tools import *
|
from tools import *
|
||||||
|
|
||||||
sys.path.append(WorkspaceDirectory)
|
sys.path.append(WorkspaceDirectory)
|
||||||
from projects import *
|
from projects import *
|
||||||
|
|
||||||
# Log error
|
# Log error
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Run the export processes")
|
printLog(log, "--- Run the export processes")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
# For each project
|
# For each project
|
||||||
for projectName in ProjectsToProcess:
|
for projectName in ProjectsToProcess:
|
||||||
if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)):
|
if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)):
|
||||||
printLog(log, "PROJECT " + projectName)
|
printLog(log, "PROJECT " + projectName)
|
||||||
os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName))
|
os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName))
|
||||||
os.chdir("processes")
|
os.chdir("processes")
|
||||||
try:
|
try:
|
||||||
if not args.includeprocess == None:
|
if not args.includeprocess == None:
|
||||||
subprocess.call([ "python", "1_export.py", "--includeprocess" ] + args.includeprocess)
|
subprocess.call([ "python", "1_export.py", "--includeprocess" ] + args.includeprocess)
|
||||||
elif not args.excludeprocess == None:
|
elif not args.excludeprocess == None:
|
||||||
subprocess.call([ "python", "1_export.py", "--excludeprocess" ] + args.excludeprocess)
|
subprocess.call([ "python", "1_export.py", "--excludeprocess" ] + args.excludeprocess)
|
||||||
else:
|
else:
|
||||||
subprocess.call([ "python", "1_export.py" ])
|
subprocess.call([ "python", "1_export.py" ])
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
printLog(log, "<" + projectName + "> " + str(e))
|
printLog(log, "<" + projectName + "> " + str(e))
|
||||||
os.chdir("..")
|
os.chdir("..")
|
||||||
try:
|
try:
|
||||||
projectLog = open("processes/log.log", "r")
|
projectLog = open("processes/log.log", "r")
|
||||||
projectLogData = projectLog.read()
|
projectLogData = projectLog.read()
|
||||||
projectLog.close()
|
projectLog.close()
|
||||||
log.write(projectLogData)
|
log.write(projectLogData)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
printLog(log, "<" + projectName + "> " + str(e))
|
printLog(log, "<" + projectName + "> " + str(e))
|
||||||
else:
|
else:
|
||||||
printLog(log, "IGNORE PROJECT " + projectName)
|
printLog(log, "IGNORE PROJECT " + projectName)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
if os.path.isfile("1_export.log"):
|
if os.path.isfile("1_export.log"):
|
||||||
os.remove("1_export.log")
|
os.remove("1_export.log")
|
||||||
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_export.log")
|
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_export.log")
|
||||||
shutil.move("log.log", "1_export.log")
|
shutil.move("log.log", "1_export.log")
|
||||||
|
@ -1,94 +1,94 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 2_build.py
|
# \file 2_build.py
|
||||||
# \brief Run all build processes
|
# \brief Run all build processes
|
||||||
# \date 2009-02-18 09:22GMT
|
# \date 2009-02-18 09:22GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Run all build processes
|
# Run all build processes
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
||||||
sys.path.append("configuration")
|
sys.path.append("configuration")
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Build')
|
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Build')
|
||||||
# parser.add_argument('--haltonerror', '-eh', action='store_true')
|
# parser.add_argument('--haltonerror', '-eh', action='store_true')
|
||||||
parser.add_argument('--includeproject', '-ipj', nargs='+')
|
parser.add_argument('--includeproject', '-ipj', nargs='+')
|
||||||
parser.add_argument('--excludeproject', '-epj', nargs='+')
|
parser.add_argument('--excludeproject', '-epj', nargs='+')
|
||||||
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
||||||
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
if not args.includeproject == None and not args.excludeproject == None:
|
if not args.includeproject == None and not args.excludeproject == None:
|
||||||
print "ERROR --includeproject cannot be combined with --excludeproject, exit."
|
print "ERROR --includeproject cannot be combined with --excludeproject, exit."
|
||||||
exit()
|
exit()
|
||||||
|
|
||||||
if not args.includeprocess == None and not args.excludeprocess == None:
|
if not args.includeprocess == None and not args.excludeprocess == None:
|
||||||
print "ERROR --includeprocess cannot be combined with --excludeprocess, exit."
|
print "ERROR --includeprocess cannot be combined with --excludeprocess, exit."
|
||||||
exit()
|
exit()
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite_local import *
|
||||||
from tools import *
|
from tools import *
|
||||||
|
|
||||||
sys.path.append(WorkspaceDirectory)
|
sys.path.append(WorkspaceDirectory)
|
||||||
from projects import *
|
from projects import *
|
||||||
|
|
||||||
# Log error
|
# Log error
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Run the build processes")
|
printLog(log, "--- Run the build processes")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
# For each project
|
# For each project
|
||||||
for projectName in ProjectsToProcess:
|
for projectName in ProjectsToProcess:
|
||||||
if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)):
|
if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)):
|
||||||
printLog(log, "PROJECT " + projectName)
|
printLog(log, "PROJECT " + projectName)
|
||||||
os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName))
|
os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName))
|
||||||
os.chdir("processes")
|
os.chdir("processes")
|
||||||
try:
|
try:
|
||||||
if not args.includeprocess == None:
|
if not args.includeprocess == None:
|
||||||
subprocess.call([ "python", "2_build.py", "--includeprocess" ] + args.includeprocess)
|
subprocess.call([ "python", "2_build.py", "--includeprocess" ] + args.includeprocess)
|
||||||
elif not args.excludeprocess == None:
|
elif not args.excludeprocess == None:
|
||||||
subprocess.call([ "python", "2_build.py", "--excludeprocess" ] + args.excludeprocess)
|
subprocess.call([ "python", "2_build.py", "--excludeprocess" ] + args.excludeprocess)
|
||||||
else:
|
else:
|
||||||
subprocess.call([ "python", "2_build.py" ])
|
subprocess.call([ "python", "2_build.py" ])
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
printLog(log, "<" + projectName + "> " + str(e))
|
printLog(log, "<" + projectName + "> " + str(e))
|
||||||
os.chdir("..")
|
os.chdir("..")
|
||||||
try:
|
try:
|
||||||
projectLog = open("processes/log.log", "r")
|
projectLog = open("processes/log.log", "r")
|
||||||
projectLogData = projectLog.read()
|
projectLogData = projectLog.read()
|
||||||
projectLog.close()
|
projectLog.close()
|
||||||
log.write(projectLogData)
|
log.write(projectLogData)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
printLog(log, "<" + projectName + "> " + str(e))
|
printLog(log, "<" + projectName + "> " + str(e))
|
||||||
else:
|
else:
|
||||||
printLog(log, "IGNORE PROJECT " + projectName)
|
printLog(log, "IGNORE PROJECT " + projectName)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
if os.path.isfile("2_build.log"):
|
if os.path.isfile("2_build.log"):
|
||||||
os.remove("2_build.log")
|
os.remove("2_build.log")
|
||||||
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_build.log")
|
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_build.log")
|
||||||
shutil.move("log.log", "2_build.log")
|
shutil.move("log.log", "2_build.log")
|
||||||
|
@ -1,94 +1,94 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 3_install.py
|
# \file 3_install.py
|
||||||
# \brief Run all install processes
|
# \brief Run all install processes
|
||||||
# \date 2009-02-18 16:19GMT
|
# \date 2009-02-18 16:19GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Run all install processes
|
# Run all install processes
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
||||||
sys.path.append("configuration")
|
sys.path.append("configuration")
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Install')
|
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Install')
|
||||||
# parser.add_argument('--haltonerror', '-eh', action='store_true')
|
# parser.add_argument('--haltonerror', '-eh', action='store_true')
|
||||||
parser.add_argument('--includeproject', '-ipj', nargs='+')
|
parser.add_argument('--includeproject', '-ipj', nargs='+')
|
||||||
parser.add_argument('--excludeproject', '-epj', nargs='+')
|
parser.add_argument('--excludeproject', '-epj', nargs='+')
|
||||||
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
||||||
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
if not args.includeproject == None and not args.excludeproject == None:
|
if not args.includeproject == None and not args.excludeproject == None:
|
||||||
print "ERROR --includeproject cannot be combined with --excludeproject, exit."
|
print "ERROR --includeproject cannot be combined with --excludeproject, exit."
|
||||||
exit()
|
exit()
|
||||||
|
|
||||||
if not args.includeprocess == None and not args.excludeprocess == None:
|
if not args.includeprocess == None and not args.excludeprocess == None:
|
||||||
print "ERROR --includeprocess cannot be combined with --excludeprocess, exit."
|
print "ERROR --includeprocess cannot be combined with --excludeprocess, exit."
|
||||||
exit()
|
exit()
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite_local import *
|
||||||
from tools import *
|
from tools import *
|
||||||
|
|
||||||
sys.path.append(WorkspaceDirectory)
|
sys.path.append(WorkspaceDirectory)
|
||||||
from projects import *
|
from projects import *
|
||||||
|
|
||||||
# Log error
|
# Log error
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Run the install processes")
|
printLog(log, "--- Run the install processes")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
# For each project
|
# For each project
|
||||||
for projectName in ProjectsToProcess:
|
for projectName in ProjectsToProcess:
|
||||||
if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)):
|
if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)):
|
||||||
printLog(log, "PROJECT " + projectName)
|
printLog(log, "PROJECT " + projectName)
|
||||||
os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName))
|
os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName))
|
||||||
os.chdir("processes")
|
os.chdir("processes")
|
||||||
try:
|
try:
|
||||||
if not args.includeprocess == None:
|
if not args.includeprocess == None:
|
||||||
subprocess.call([ "python", "3_install.py", "--includeprocess" ] + args.includeprocess)
|
subprocess.call([ "python", "3_install.py", "--includeprocess" ] + args.includeprocess)
|
||||||
elif not args.excludeprocess == None:
|
elif not args.excludeprocess == None:
|
||||||
subprocess.call([ "python", "3_install.py", "--excludeprocess" ] + args.excludeprocess)
|
subprocess.call([ "python", "3_install.py", "--excludeprocess" ] + args.excludeprocess)
|
||||||
else:
|
else:
|
||||||
subprocess.call([ "python", "3_install.py" ])
|
subprocess.call([ "python", "3_install.py" ])
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
printLog(log, "<" + projectName + "> " + str(e))
|
printLog(log, "<" + projectName + "> " + str(e))
|
||||||
os.chdir("..")
|
os.chdir("..")
|
||||||
try:
|
try:
|
||||||
projectLog = open("processes/log.log", "r")
|
projectLog = open("processes/log.log", "r")
|
||||||
projectLogData = projectLog.read()
|
projectLogData = projectLog.read()
|
||||||
projectLog.close()
|
projectLog.close()
|
||||||
log.write(projectLogData)
|
log.write(projectLogData)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
printLog(log, "<" + projectName + "> " + str(e))
|
printLog(log, "<" + projectName + "> " + str(e))
|
||||||
else:
|
else:
|
||||||
printLog(log, "IGNORE PROJECT " + projectName)
|
printLog(log, "IGNORE PROJECT " + projectName)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
if os.path.isfile("3_install.log"):
|
if os.path.isfile("3_install.log"):
|
||||||
os.remove("3_install.log")
|
os.remove("3_install.log")
|
||||||
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_install.log")
|
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_install.log")
|
||||||
shutil.move("log.log", "3_install.log")
|
shutil.move("log.log", "3_install.log")
|
||||||
|
@ -1,181 +1,181 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 9_upload.py
|
# \file 9_upload.py
|
||||||
# \brief Upload data to servers
|
# \brief Upload data to servers
|
||||||
# \date 2009-02-18 16:19GMT
|
# \date 2009-02-18 16:19GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Game data build pipeline.
|
# Game data build pipeline.
|
||||||
# Upload data to servers
|
# Upload data to servers
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2011 Kaetemi
|
# Copyright (C) 2011 Kaetemi
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("configuration")
|
sys.path.append("configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite_local import *
|
||||||
from tools import *
|
from tools import *
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from upload import *
|
from upload import *
|
||||||
except ImportError:
|
except ImportError:
|
||||||
# Not documenting this. Because we can.
|
# Not documenting this. Because we can.
|
||||||
printLog(log, "ERROR Upload not configured, bye.")
|
printLog(log, "ERROR Upload not configured, bye.")
|
||||||
exit()
|
exit()
|
||||||
|
|
||||||
sys.path.append(WorkspaceDirectory)
|
sys.path.append(WorkspaceDirectory)
|
||||||
from projects import *
|
from projects import *
|
||||||
|
|
||||||
# Log error
|
# Log error
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Upload data to servers")
|
printLog(log, "--- Upload data to servers")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# Find tools
|
# Find tools
|
||||||
# Not documenting this. Because we can.
|
# Not documenting this. Because we can.
|
||||||
Psftp = findFileMultiDir(log, ToolDirectories + WindowsExeDllCfgDirectories, UploadPsftpTool)
|
Psftp = findFileMultiDir(log, ToolDirectories + WindowsExeDllCfgDirectories, UploadPsftpTool)
|
||||||
printLog(log, "PSFTP " + Psftp)
|
printLog(log, "PSFTP " + Psftp)
|
||||||
|
|
||||||
def downloadVersionTag(server, user, sshkey, dir):
|
def downloadVersionTag(server, user, sshkey, dir):
|
||||||
if os.path.isfile("upload.tag"):
|
if os.path.isfile("upload.tag"):
|
||||||
os.remove("upload.tag")
|
os.remove("upload.tag")
|
||||||
if os.path.isfile("upload.batch"):
|
if os.path.isfile("upload.batch"):
|
||||||
os.remove("upload.batch")
|
os.remove("upload.batch")
|
||||||
ub = open("upload.batch", "w")
|
ub = open("upload.batch", "w")
|
||||||
ub.write("cd " + dir + "\n")
|
ub.write("cd " + dir + "\n")
|
||||||
ub.write("get upload.tag upload.tag\n")
|
ub.write("get upload.tag upload.tag\n")
|
||||||
ub.write("quit\n")
|
ub.write("quit\n")
|
||||||
ub.close()
|
ub.close()
|
||||||
subprocess.call([ Psftp, "-b", "upload.batch", "-i", sshkey, user + "@" + server ])
|
subprocess.call([ Psftp, "-b", "upload.batch", "-i", sshkey, user + "@" + server ])
|
||||||
os.remove("upload.batch")
|
os.remove("upload.batch")
|
||||||
if os.path.isfile("upload.tag"):
|
if os.path.isfile("upload.tag"):
|
||||||
ft = open("upload.tag")
|
ft = open("upload.tag")
|
||||||
result = float(ft.read()) # float, really
|
result = float(ft.read()) # float, really
|
||||||
ft.close()
|
ft.close()
|
||||||
os.remove("upload.tag")
|
os.remove("upload.tag")
|
||||||
printLog(log, "INFO Upload tag is " + str(result))
|
printLog(log, "INFO Upload tag is " + str(result))
|
||||||
return result
|
return result
|
||||||
else:
|
else:
|
||||||
printLog(log, "WARNING Upload tag not found, uploading everything")
|
printLog(log, "WARNING Upload tag not found, uploading everything")
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def isDirectoryNeeded(ft, dir):
|
def isDirectoryNeeded(ft, dir):
|
||||||
files = os.listdir(dir)
|
files = os.listdir(dir)
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if isLegalFileName(fileName):
|
if isLegalFileName(fileName):
|
||||||
fileFull = dir + "/" + fileName
|
fileFull = dir + "/" + fileName
|
||||||
if os.path.isfile(fileFull):
|
if os.path.isfile(fileFull):
|
||||||
nftf = os.stat(fileFull).st_mtime
|
nftf = os.stat(fileFull).st_mtime
|
||||||
if nftf > ft:
|
if nftf > ft:
|
||||||
return True
|
return True
|
||||||
elif os.path.isdir(fileFull):
|
elif os.path.isdir(fileFull):
|
||||||
if isDirectoryNeeded(ft, fileFull):
|
if isDirectoryNeeded(ft, fileFull):
|
||||||
return True
|
return True
|
||||||
elif not os.path.isdir(fileFull):
|
elif not os.path.isdir(fileFull):
|
||||||
printLog(log, "isDirectoryNeeded: file not dir or file?!" + fileFull)
|
printLog(log, "isDirectoryNeeded: file not dir or file?!" + fileFull)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def listDirectoryUpload(ft, ub, udb, dir):
|
def listDirectoryUpload(ft, ub, udb, dir):
|
||||||
nft = 0
|
nft = 0
|
||||||
files = os.listdir(dir)
|
files = os.listdir(dir)
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if isLegalFileName(fileName):
|
if isLegalFileName(fileName):
|
||||||
fileFull = dir + "/" + fileName
|
fileFull = dir + "/" + fileName
|
||||||
if os.path.isfile(fileFull):
|
if os.path.isfile(fileFull):
|
||||||
nftf = os.stat(fileFull).st_mtime
|
nftf = os.stat(fileFull).st_mtime
|
||||||
if nftf > ft:
|
if nftf > ft:
|
||||||
ub.write("put " + fileFull + " " + fileName + "\n")
|
ub.write("put " + fileFull + " " + fileName + "\n")
|
||||||
if nftf > nft:
|
if nftf > nft:
|
||||||
nft = nftf
|
nft = nftf
|
||||||
elif os.path.isdir(fileFull):
|
elif os.path.isdir(fileFull):
|
||||||
if isDirectoryNeeded(ft, fileFull):
|
if isDirectoryNeeded(ft, fileFull):
|
||||||
udb.write("mkdir " + fileName + "\n")
|
udb.write("mkdir " + fileName + "\n")
|
||||||
ub.write("cd " + fileName + "\n")
|
ub.write("cd " + fileName + "\n")
|
||||||
udb.write("cd " + fileName + "\n")
|
udb.write("cd " + fileName + "\n")
|
||||||
nft2 = listDirectoryUpload(ft, ub, udb, fileFull)
|
nft2 = listDirectoryUpload(ft, ub, udb, fileFull)
|
||||||
if (nft2 > nft):
|
if (nft2 > nft):
|
||||||
nft = nft2
|
nft = nft2
|
||||||
ub.write("cd ..\n")
|
ub.write("cd ..\n")
|
||||||
udb.write("cd ..\n")
|
udb.write("cd ..\n")
|
||||||
elif not os.path.isdir(fileFull):
|
elif not os.path.isdir(fileFull):
|
||||||
printLog(log, "listDirectoryUpload: file not dir or file?!" + fileFull)
|
printLog(log, "listDirectoryUpload: file not dir or file?!" + fileFull)
|
||||||
return nft
|
return nft
|
||||||
|
|
||||||
def uploadSftp(server, user, sshkey, dir_to, dir_from, addcmd):
|
def uploadSftp(server, user, sshkey, dir_to, dir_from, addcmd):
|
||||||
ft = downloadVersionTag(server, user, sshkey, dir_to)
|
ft = downloadVersionTag(server, user, sshkey, dir_to)
|
||||||
if isDirectoryNeeded(ft, dir_from):
|
if isDirectoryNeeded(ft, dir_from):
|
||||||
if os.path.isfile("upload_dir.batch"):
|
if os.path.isfile("upload_dir.batch"):
|
||||||
os.remove("upload_dir.batch")
|
os.remove("upload_dir.batch")
|
||||||
if os.path.isfile("upload.batch"):
|
if os.path.isfile("upload.batch"):
|
||||||
os.remove("upload.batch")
|
os.remove("upload.batch")
|
||||||
udb = open("upload_dir.batch", "w")
|
udb = open("upload_dir.batch", "w")
|
||||||
udb.write("cd " + dir_to + "\n")
|
udb.write("cd " + dir_to + "\n")
|
||||||
ub = open("upload.batch", "w")
|
ub = open("upload.batch", "w")
|
||||||
ub.write("cd " + dir_to + "\n")
|
ub.write("cd " + dir_to + "\n")
|
||||||
for ac in addcmd:
|
for ac in addcmd:
|
||||||
ub.write(ac + "\n")
|
ub.write(ac + "\n")
|
||||||
ftn = listDirectoryUpload(ft, ub, udb, dir_from)
|
ftn = listDirectoryUpload(ft, ub, udb, dir_from)
|
||||||
if (ft > ftn):
|
if (ft > ftn):
|
||||||
ftn = ft
|
ftn = ft
|
||||||
nft = open("upload.tag", "w")
|
nft = open("upload.tag", "w")
|
||||||
nft.write(str(ftn))
|
nft.write(str(ftn))
|
||||||
nft.close()
|
nft.close()
|
||||||
ub.write("put upload.tag upload.tag\n")
|
ub.write("put upload.tag upload.tag\n")
|
||||||
ub.write("quit\n")
|
ub.write("quit\n")
|
||||||
ub.close()
|
ub.close()
|
||||||
udb.write("quit\n")
|
udb.write("quit\n")
|
||||||
udb.close()
|
udb.close()
|
||||||
subprocess.call([ Psftp, "-be", "-b", "upload_dir.batch", "-i", sshkey, user + "@" + server ])
|
subprocess.call([ Psftp, "-be", "-b", "upload_dir.batch", "-i", sshkey, user + "@" + server ])
|
||||||
subprocess.call([ Psftp, "-b", "upload.batch", "-i", sshkey, user + "@" + server ])
|
subprocess.call([ Psftp, "-b", "upload.batch", "-i", sshkey, user + "@" + server ])
|
||||||
os.remove("upload_dir.batch")
|
os.remove("upload_dir.batch")
|
||||||
os.remove("upload.batch")
|
os.remove("upload.batch")
|
||||||
os.remove("upload.tag")
|
os.remove("upload.tag")
|
||||||
else:
|
else:
|
||||||
printLog(log, "SKIP " + dir_to)
|
printLog(log, "SKIP " + dir_to)
|
||||||
|
|
||||||
printLog(log, ">>> Upload patch <<<")
|
printLog(log, ">>> Upload patch <<<")
|
||||||
for target in UploadPatch:
|
for target in UploadPatch:
|
||||||
uploadSftp(target[0], target[1], target[2], target[3], ClientPatchDirectory + "/patch", [ ])
|
uploadSftp(target[0], target[1], target[2], target[3], ClientPatchDirectory + "/patch", [ ])
|
||||||
|
|
||||||
printLog(log, ">>> Upload data_shard <<<")
|
printLog(log, ">>> Upload data_shard <<<")
|
||||||
for target in UploadShard:
|
for target in UploadShard:
|
||||||
uploadSftp(target[0], target[1], target[2], target[3], DataShardDirectory, [ "rm *.packed_sheets", "rm primitive_cache/*.binprim" ])
|
uploadSftp(target[0], target[1], target[2], target[3], DataShardDirectory, [ "rm *.packed_sheets", "rm primitive_cache/*.binprim" ])
|
||||||
|
|
||||||
printLog(log, ">>> Upload data_common <<<")
|
printLog(log, ">>> Upload data_common <<<")
|
||||||
for target in UploadCommon:
|
for target in UploadCommon:
|
||||||
uploadSftp(target[0], target[1], target[2], target[3], DataCommonDirectory, [ ])
|
uploadSftp(target[0], target[1], target[2], target[3], DataCommonDirectory, [ ])
|
||||||
|
|
||||||
printLog(log, ">>> Upload data_leveldesign/leveldesign <<<")
|
printLog(log, ">>> Upload data_leveldesign/leveldesign <<<")
|
||||||
for target in UploadLeveldesign:
|
for target in UploadLeveldesign:
|
||||||
uploadSftp(target[0], target[1], target[2], target[3], LeveldesignDirectory, [ ])
|
uploadSftp(target[0], target[1], target[2], target[3], LeveldesignDirectory, [ ])
|
||||||
|
|
||||||
printLog(log, ">>> Upload data_leveldesign/primitives <<<")
|
printLog(log, ">>> Upload data_leveldesign/primitives <<<")
|
||||||
for target in UploadPrimitives:
|
for target in UploadPrimitives:
|
||||||
uploadSftp(target[0], target[1], target[2], target[3], PrimitivesDirectory, [ ])
|
uploadSftp(target[0], target[1], target[2], target[3], PrimitivesDirectory, [ ])
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
if os.path.isfile("9_upload.log"):
|
if os.path.isfile("9_upload.log"):
|
||||||
os.remove("9_upload.log")
|
os.remove("9_upload.log")
|
||||||
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_upload.log")
|
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_upload.log")
|
||||||
shutil.move("log.log", "9_upload.log")
|
shutil.move("log.log", "9_upload.log")
|
||||||
|
@ -1,74 +1,74 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file a1_worldedit_data.py
|
# \file a1_worldedit_data.py
|
||||||
# \brief Install worldedit data
|
# \brief Install worldedit data
|
||||||
# \date 2014-09-10 14:01GMT
|
# \date 2014-09-10 14:01GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Install worldedit data
|
# Install worldedit data
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2014 by authors
|
# Copyright (C) 2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("configuration")
|
sys.path.append("configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite_local import *
|
||||||
from tools import *
|
from tools import *
|
||||||
|
|
||||||
sys.path.append(WorkspaceDirectory)
|
sys.path.append(WorkspaceDirectory)
|
||||||
from projects import *
|
from projects import *
|
||||||
|
|
||||||
# Log error
|
# Log error
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Install worldedit data")
|
printLog(log, "--- Install worldedit data")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
for ecosystem in WorldEditEcosystems:
|
for ecosystem in WorldEditEcosystems:
|
||||||
ecosystemName = ecosystem[0]
|
ecosystemName = ecosystem[0]
|
||||||
srcZoneLigos = ExportBuildDirectory + "/ecosystems/" + ecosystemName + "/ligo_es/zoneligos/"
|
srcZoneLigos = ExportBuildDirectory + "/ecosystems/" + ecosystemName + "/ligo_es/zoneligos/"
|
||||||
dstZoneLigos = WorldEditInstallDirectory + "/" + ecosystemName + "/zoneligos/"
|
dstZoneLigos = WorldEditInstallDirectory + "/" + ecosystemName + "/zoneligos/"
|
||||||
mkPath(log, srcZoneLigos)
|
mkPath(log, srcZoneLigos)
|
||||||
mkPath(log, dstZoneLigos)
|
mkPath(log, dstZoneLigos)
|
||||||
copyFilesNoTreeIfNeeded(log, srcZoneLigos, dstZoneLigos)
|
copyFilesNoTreeIfNeeded(log, srcZoneLigos, dstZoneLigos)
|
||||||
srcZoneBitmaps = DatabaseDirectory + "/landscape/ligo/" + ecosystemName + "/zonebitmaps/"
|
srcZoneBitmaps = DatabaseDirectory + "/landscape/ligo/" + ecosystemName + "/zonebitmaps/"
|
||||||
dstZoneBitmaps = WorldEditInstallDirectory + "/" + ecosystemName + "/zonebitmaps/"
|
dstZoneBitmaps = WorldEditInstallDirectory + "/" + ecosystemName + "/zonebitmaps/"
|
||||||
mkPath(log, srcZoneBitmaps)
|
mkPath(log, srcZoneBitmaps)
|
||||||
mkPath(log, dstZoneBitmaps)
|
mkPath(log, dstZoneBitmaps)
|
||||||
copyFilesExtNoTreeIfNeeded(log, srcZoneBitmaps, dstZoneBitmaps, ".tga")
|
copyFilesExtNoTreeIfNeeded(log, srcZoneBitmaps, dstZoneBitmaps, ".tga")
|
||||||
copyFilesExtNoTreeIfNeeded(log, srcZoneBitmaps, dstZoneBitmaps, ".png")
|
copyFilesExtNoTreeIfNeeded(log, srcZoneBitmaps, dstZoneBitmaps, ".png")
|
||||||
dstCollisionMap = WorldEditInstallDirectory + "/" + ecosystemName + "/collisionmap/"
|
dstCollisionMap = WorldEditInstallDirectory + "/" + ecosystemName + "/collisionmap/"
|
||||||
mkPath(log, dstCollisionMap)
|
mkPath(log, dstCollisionMap)
|
||||||
for continentName in ecosystem[1]:
|
for continentName in ecosystem[1]:
|
||||||
srcCollisionMap = ExportBuildDirectory + "/continents/" + continentName + "/ai_wmap/"
|
srcCollisionMap = ExportBuildDirectory + "/continents/" + continentName + "/ai_wmap/"
|
||||||
mkPath(log, srcCollisionMap)
|
mkPath(log, srcCollisionMap)
|
||||||
copyFilesExtNoTreeIfNeeded(log, srcCollisionMap, dstCollisionMap, ".tga")
|
copyFilesExtNoTreeIfNeeded(log, srcCollisionMap, dstCollisionMap, ".tga")
|
||||||
copyFilesExtNoTreeIfNeeded(log, srcCollisionMap, dstCollisionMap, ".png")
|
copyFilesExtNoTreeIfNeeded(log, srcCollisionMap, dstCollisionMap, ".png")
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
if os.path.isfile("a1_worldedit_data.log"):
|
if os.path.isfile("a1_worldedit_data.log"):
|
||||||
os.remove("a1_worldedit_data.log")
|
os.remove("a1_worldedit_data.log")
|
||||||
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_worldedit_data.log")
|
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_worldedit_data.log")
|
||||||
shutil.move("log.log", "a1_worldedit_data.log")
|
shutil.move("log.log", "a1_worldedit_data.log")
|
||||||
|
@ -1,93 +1,93 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file b2_shard_data.py
|
# \file b2_shard_data.py
|
||||||
# \brief Install shard data
|
# \brief Install shard data
|
||||||
# \date 2009-02-18 16:19GMT
|
# \date 2009-02-18 16:19GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Install shard data
|
# Install shard data
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("configuration")
|
sys.path.append("configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite_local import *
|
||||||
from tools import *
|
from tools import *
|
||||||
|
|
||||||
sys.path.append(WorkspaceDirectory)
|
sys.path.append(WorkspaceDirectory)
|
||||||
from projects import *
|
from projects import *
|
||||||
|
|
||||||
# Log error
|
# Log error
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Install shard data")
|
printLog(log, "--- Install shard data")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
for dir in InstallShardDataDirectories:
|
for dir in InstallShardDataDirectories:
|
||||||
printLog(log, "SHARD PACKAGE " + dir)
|
printLog(log, "SHARD PACKAGE " + dir)
|
||||||
mkPath(log, ShardInstallDirectory + "/" + dir)
|
mkPath(log, ShardInstallDirectory + "/" + dir)
|
||||||
printLog(log, "FROM " + dir)
|
printLog(log, "FROM " + dir)
|
||||||
mkPath(log, InstallDirectory + "/" + dir)
|
mkPath(log, InstallDirectory + "/" + dir)
|
||||||
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + dir, ShardInstallDirectory + "/" + dir)
|
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + dir, ShardInstallDirectory + "/" + dir)
|
||||||
for package in InstallShardDataFiles:
|
for package in InstallShardDataFiles:
|
||||||
dstDir = package[0]
|
dstDir = package[0]
|
||||||
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
||||||
printLog(log, "SHARD PACKAGE " + dstDir)
|
printLog(log, "SHARD PACKAGE " + dstDir)
|
||||||
copyFileListNoTreeIfNeeded(log, InstallDirectory, ShardInstallDirectory + "/" + dstDir, package[1])
|
copyFileListNoTreeIfNeeded(log, InstallDirectory, ShardInstallDirectory + "/" + dstDir, package[1])
|
||||||
for multiDir in InstallShardDataMultiDirectories:
|
for multiDir in InstallShardDataMultiDirectories:
|
||||||
dstDir = multiDir[0]
|
dstDir = multiDir[0]
|
||||||
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
||||||
printLog(log, "SHARD PACKAGE " + dstDir)
|
printLog(log, "SHARD PACKAGE " + dstDir)
|
||||||
for srcDir in multiDir[1]:
|
for srcDir in multiDir[1]:
|
||||||
printLog(log, "FROM " + srcDir)
|
printLog(log, "FROM " + srcDir)
|
||||||
mkPath(log, InstallDirectory + "/" + srcDir)
|
mkPath(log, InstallDirectory + "/" + srcDir)
|
||||||
mkPath(log, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
mkPath(log, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
||||||
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + srcDir, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + srcDir, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
||||||
for multiDir in InstallShardDataPrimitivesDirectories:
|
for multiDir in InstallShardDataPrimitivesDirectories:
|
||||||
dstDir = multiDir[0]
|
dstDir = multiDir[0]
|
||||||
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
||||||
printLog(log, "SHARD PACKAGE " + dstDir)
|
printLog(log, "SHARD PACKAGE " + dstDir)
|
||||||
for srcDir in multiDir[1]:
|
for srcDir in multiDir[1]:
|
||||||
printLog(log, "FROM PRIMITIVES " + srcDir)
|
printLog(log, "FROM PRIMITIVES " + srcDir)
|
||||||
mkPath(log, PrimitivesDirectory + "/" + srcDir)
|
mkPath(log, PrimitivesDirectory + "/" + srcDir)
|
||||||
mkPath(log, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
mkPath(log, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
||||||
copyFilesNoTreeIfNeeded(log, PrimitivesDirectory + "/" + srcDir, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
copyFilesNoTreeIfNeeded(log, PrimitivesDirectory + "/" + srcDir, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
||||||
for execDir in InstallShardDataExecutables:
|
for execDir in InstallShardDataExecutables:
|
||||||
dstDir = execDir[0]
|
dstDir = execDir[0]
|
||||||
mkPath(log, LinuxServiceExecutableDirectory)
|
mkPath(log, LinuxServiceExecutableDirectory)
|
||||||
mkPath(log, PatchmanCfgDefaultDirectory)
|
mkPath(log, PatchmanCfgDefaultDirectory)
|
||||||
mkPath(log, InstallDirectory)
|
mkPath(log, InstallDirectory)
|
||||||
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
||||||
printLog(log, "SHARD PACKAGE " + dstDir)
|
printLog(log, "SHARD PACKAGE " + dstDir)
|
||||||
copyFileIfNeeded(log, LinuxServiceExecutableDirectory + "/" + execDir[1][1], ShardInstallDirectory + "/" + dstDir + "/" + execDir[1][0])
|
copyFileIfNeeded(log, LinuxServiceExecutableDirectory + "/" + execDir[1][1], ShardInstallDirectory + "/" + dstDir + "/" + execDir[1][0])
|
||||||
copyFileListNoTreeIfNeeded(log, PatchmanCfgDefaultDirectory, ShardInstallDirectory + "/" + dstDir, execDir[2])
|
copyFileListNoTreeIfNeeded(log, PatchmanCfgDefaultDirectory, ShardInstallDirectory + "/" + dstDir, execDir[2])
|
||||||
copyFileListNoTreeIfNeeded(log, InstallDirectory, ShardInstallDirectory + "/" + dstDir, execDir[3])
|
copyFileListNoTreeIfNeeded(log, InstallDirectory, ShardInstallDirectory + "/" + dstDir, execDir[3])
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
if os.path.isfile("b2_shard_data.log"):
|
if os.path.isfile("b2_shard_data.log"):
|
||||||
os.remove("b2_shard_data.log")
|
os.remove("b2_shard_data.log")
|
||||||
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_shard_data.log")
|
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_shard_data.log")
|
||||||
shutil.move("log.log", "b2_shard_data.log")
|
shutil.move("log.log", "b2_shard_data.log")
|
||||||
|
@ -1,86 +1,86 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file d2_client_install.py
|
# \file d2_client_install.py
|
||||||
# \brief Install to client install
|
# \brief Install to client install
|
||||||
# \date 2009-02-18 16:19GMT
|
# \date 2009-02-18 16:19GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Install to client install
|
# Install to client install
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("configuration")
|
sys.path.append("configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite_local import *
|
||||||
from tools import *
|
from tools import *
|
||||||
|
|
||||||
sys.path.append(WorkspaceDirectory)
|
sys.path.append(WorkspaceDirectory)
|
||||||
from projects import *
|
from projects import *
|
||||||
|
|
||||||
# Log error
|
# Log error
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Install to client install")
|
printLog(log, "--- Install to client install")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
for category in InstallClientData:
|
for category in InstallClientData:
|
||||||
printLog(log, "CATEGORY " + category["Name"])
|
printLog(log, "CATEGORY " + category["Name"])
|
||||||
packExt = ".bnp"
|
packExt = ".bnp"
|
||||||
if (category["StreamedPackages"]):
|
if (category["StreamedPackages"]):
|
||||||
packExt = ".snp"
|
packExt = ".snp"
|
||||||
if (category["UnpackTo"] != None):
|
if (category["UnpackTo"] != None):
|
||||||
targetPath = ClientInstallDirectory
|
targetPath = ClientInstallDirectory
|
||||||
if (category["UnpackTo"] != ""):
|
if (category["UnpackTo"] != ""):
|
||||||
targetPath += "/" + category["UnpackTo"]
|
targetPath += "/" + category["UnpackTo"]
|
||||||
mkPath(log, targetPath)
|
mkPath(log, targetPath)
|
||||||
for package in category["Packages"]:
|
for package in category["Packages"]:
|
||||||
printLog(log, "PACKAGE " + package[0])
|
printLog(log, "PACKAGE " + package[0])
|
||||||
mkPath(log, InstallDirectory + "/" + package[0])
|
mkPath(log, InstallDirectory + "/" + package[0])
|
||||||
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + package[0], targetPath)
|
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + package[0], targetPath)
|
||||||
else:
|
else:
|
||||||
sourcePath = ClientPatchDirectory + "/bnp"
|
sourcePath = ClientPatchDirectory + "/bnp"
|
||||||
targetPath = ClientInstallDirectory + "/data"
|
targetPath = ClientInstallDirectory + "/data"
|
||||||
mkPath(log, targetPath)
|
mkPath(log, targetPath)
|
||||||
for package in category["Packages"]:
|
for package in category["Packages"]:
|
||||||
printLog(log, "PACKAGE " + package[0])
|
printLog(log, "PACKAGE " + package[0])
|
||||||
sourceBnp = sourcePath + "/" + package[0] + packExt
|
sourceBnp = sourcePath + "/" + package[0] + packExt
|
||||||
targetBnp = targetPath + "/" + package[0] + packExt
|
targetBnp = targetPath + "/" + package[0] + packExt
|
||||||
if (len(package[1]) > 0):
|
if (len(package[1]) > 0):
|
||||||
sourceBnp = sourcePath + "/" + package[1][0]
|
sourceBnp = sourcePath + "/" + package[1][0]
|
||||||
targetBnp = targetPath + "/" + package[1][0]
|
targetBnp = targetPath + "/" + package[1][0]
|
||||||
printLog(log, "TARGET " + package[1][0])
|
printLog(log, "TARGET " + package[1][0])
|
||||||
copyFileIfNeeded(log, sourceBnp, targetBnp)
|
copyFileIfNeeded(log, sourceBnp, targetBnp)
|
||||||
for ref in category["Refs"]:
|
for ref in category["Refs"]:
|
||||||
printLog(log, "REFERENCE " + ref)
|
printLog(log, "REFERENCE " + ref)
|
||||||
sourceRef = sourcePath + "/" + ref + "_.ref"
|
sourceRef = sourcePath + "/" + ref + "_.ref"
|
||||||
targetRef = targetPath + "/" + ref + "_.ref"
|
targetRef = targetPath + "/" + ref + "_.ref"
|
||||||
copyFileIfNeeded(log, sourceRef, targetRef)
|
copyFileIfNeeded(log, sourceRef, targetRef)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
if os.path.isfile("d2_client_install.log"):
|
if os.path.isfile("d2_client_install.log"):
|
||||||
os.remove("d2_client_install.log")
|
os.remove("d2_client_install.log")
|
||||||
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_client_install.log")
|
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_client_install.log")
|
||||||
shutil.move("log.log", "d2_client_install.log")
|
shutil.move("log.log", "d2_client_install.log")
|
||||||
|
@ -1,32 +1,32 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file export_build_install.py
|
# \file export_build_install.py
|
||||||
# \brief Run all processes
|
# \brief Run all processes
|
||||||
# \date 2009-02-18 15:28GMT
|
# \date 2009-02-18 15:28GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Run all processes
|
# Run all processes
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http:#dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http:#dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http:#www.gnu.org/licenses/>.
|
# along with this program. If not, see <http:#www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import shutil, subprocess
|
import shutil, subprocess
|
||||||
|
|
||||||
subprocess.call([ "python", "1_export.py" ])
|
subprocess.call([ "python", "1_export.py" ])
|
||||||
subprocess.call([ "python", "2_build.py" ])
|
subprocess.call([ "python", "2_build.py" ])
|
||||||
subprocess.call([ "python", "3_install.py" ])
|
subprocess.call([ "python", "3_install.py" ])
|
||||||
|
|
||||||
|
@ -1,220 +1,220 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# #################################################################
|
# #################################################################
|
||||||
# ## %PreGenWarning%
|
# ## %PreGenWarning%
|
||||||
# #################################################################
|
# #################################################################
|
||||||
#
|
#
|
||||||
# \file directories.py
|
# \file directories.py
|
||||||
# \brief Directories configuration
|
# \brief Directories configuration
|
||||||
# \date %PreGenDateTimeStamp%
|
# \date %PreGenDateTimeStamp%
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# \date 2001-2005
|
# \date 2001-2005
|
||||||
# \author Nevrax
|
# \author Nevrax
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Directories configuration for '%PreGenEcosystemName%' ecosystem.
|
# Directories configuration for '%PreGenEcosystemName%' ecosystem.
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# *** ECOSYSTEM AND CONTINENT NAMES ***
|
# *** ECOSYSTEM AND CONTINENT NAMES ***
|
||||||
|
|
||||||
EcosystemName = "%PreGenEcosystemName%"
|
EcosystemName = "%PreGenEcosystemName%"
|
||||||
EcosystemPath = "ecosystems/" + EcosystemName
|
EcosystemPath = "ecosystems/" + EcosystemName
|
||||||
CommonName = EcosystemName
|
CommonName = EcosystemName
|
||||||
CommonPath = EcosystemPath
|
CommonPath = EcosystemPath
|
||||||
|
|
||||||
DatabaseRootName = "%PreGenDatabaseRootName%"
|
DatabaseRootName = "%PreGenDatabaseRootName%"
|
||||||
DatabaseRootPath = "stuff/" + DatabaseRootName
|
DatabaseRootPath = "stuff/" + DatabaseRootName
|
||||||
|
|
||||||
|
|
||||||
# *** SOURCE DIRECTORIES IN THE DATABASE ***
|
# *** SOURCE DIRECTORIES IN THE DATABASE ***
|
||||||
|
|
||||||
# Shape directories
|
# Shape directories
|
||||||
ShapeSourceDirectories = [ ]
|
ShapeSourceDirectories = [ ]
|
||||||
ShapeSourceDirectories += [ DatabaseRootPath + "/decors/vegetations" ]
|
ShapeSourceDirectories += [ DatabaseRootPath + "/decors/vegetations" ]
|
||||||
ShapeSourceDirectories += [ "landscape/ligo/" + EcosystemName + "/max" ]
|
ShapeSourceDirectories += [ "landscape/ligo/" + EcosystemName + "/max" ]
|
||||||
|
|
||||||
# Maps directories
|
# Maps directories
|
||||||
MapSourceDirectories = [ ]
|
MapSourceDirectories = [ ]
|
||||||
MapSourceDirectories += [ DatabaseRootPath + "/decors/_textures" ]
|
MapSourceDirectories += [ DatabaseRootPath + "/decors/_textures" ]
|
||||||
%PreGenMapSubdirectories%MapSourceDirectories += [ "landscape/microveget/" + EcosystemName + "" ]
|
%PreGenMapSubdirectories%MapSourceDirectories += [ "landscape/microveget/" + EcosystemName + "" ]
|
||||||
MapSourceDirectories += [ "landscape/water/meshes/" + EcosystemName + "" ]
|
MapSourceDirectories += [ "landscape/water/meshes/" + EcosystemName + "" ]
|
||||||
|
|
||||||
MapUncompressedSourceDirectories = [ ]
|
MapUncompressedSourceDirectories = [ ]
|
||||||
|
|
||||||
# Tiles directories
|
# Tiles directories
|
||||||
TilesSourceDirectories = [ ]
|
TilesSourceDirectories = [ ]
|
||||||
%PreGenTileSourceDirectories%
|
%PreGenTileSourceDirectories%
|
||||||
# Tiles root directory
|
# Tiles root directory
|
||||||
TileRootSourceDirectory = "landscape/_texture_tiles/" + EcosystemName
|
TileRootSourceDirectory = "landscape/_texture_tiles/" + EcosystemName
|
||||||
|
|
||||||
# Displace directory
|
# Displace directory
|
||||||
DisplaceSourceDirectory = "landscape/_texture_tiles/" + EcosystemName + "/displace"
|
DisplaceSourceDirectory = "landscape/_texture_tiles/" + EcosystemName + "/displace"
|
||||||
|
|
||||||
# Do not use, needs to be removed and fixed in processes
|
# Do not use, needs to be removed and fixed in processes
|
||||||
DisplaceSourceDirectories = [ ]
|
DisplaceSourceDirectories = [ ]
|
||||||
DisplaceSourceDirectories += [ DisplaceSourceDirectory ]
|
DisplaceSourceDirectories += [ DisplaceSourceDirectory ]
|
||||||
|
|
||||||
# Bank directory
|
# Bank directory
|
||||||
BankSourceDirectory = "landscape/_texture_tiles/" + EcosystemName
|
BankSourceDirectory = "landscape/_texture_tiles/" + EcosystemName
|
||||||
|
|
||||||
# Vegetable set directories
|
# Vegetable set directories
|
||||||
VegetSetSourceDirectories = [ ]
|
VegetSetSourceDirectories = [ ]
|
||||||
VegetSetSourceDirectories += [ "landscape/microveget/" + EcosystemName ]
|
VegetSetSourceDirectories += [ "landscape/microveget/" + EcosystemName ]
|
||||||
|
|
||||||
# Veget directories
|
# Veget directories
|
||||||
VegetSourceDirectories = [ ]
|
VegetSourceDirectories = [ ]
|
||||||
VegetSourceDirectories += [ "landscape/microveget/" + EcosystemName ]
|
VegetSourceDirectories += [ "landscape/microveget/" + EcosystemName ]
|
||||||
|
|
||||||
# Ligo directories
|
# Ligo directories
|
||||||
LigoBaseSourceDirectory = "landscape/ligo/" + EcosystemName
|
LigoBaseSourceDirectory = "landscape/ligo/" + EcosystemName
|
||||||
LigoMaxSourceDirectory = LigoBaseSourceDirectory + "/max"
|
LigoMaxSourceDirectory = LigoBaseSourceDirectory + "/max"
|
||||||
|
|
||||||
# Zone directories
|
# Zone directories
|
||||||
ZoneSourceDirectory = [ "landscape/zones/" + EcosystemName ] # For old snowballs style landscape when not using ligo
|
ZoneSourceDirectory = [ "landscape/zones/" + EcosystemName ] # For old snowballs style landscape when not using ligo
|
||||||
|
|
||||||
# Ig landscape directories
|
# Ig landscape directories
|
||||||
IgLandSourceDirectory = "_invalid"
|
IgLandSourceDirectory = "_invalid"
|
||||||
|
|
||||||
# Ig other directories
|
# Ig other directories
|
||||||
IgOtherSourceDirectory = "_invalid"
|
IgOtherSourceDirectory = "_invalid"
|
||||||
|
|
||||||
# PACS primitives directories
|
# PACS primitives directories
|
||||||
PacsPrimSourceDirectories = [ ]
|
PacsPrimSourceDirectories = [ ]
|
||||||
PacsPrimSourceDirectories += [ DatabaseRootPath + "/decors/vegetations" ]
|
PacsPrimSourceDirectories += [ DatabaseRootPath + "/decors/vegetations" ]
|
||||||
|
|
||||||
|
|
||||||
# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
|
# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
|
||||||
|
|
||||||
# Ig lookup directories used by rbank
|
# Ig lookup directories used by rbank
|
||||||
IgLookupDirectories = [ ]
|
IgLookupDirectories = [ ]
|
||||||
|
|
||||||
# Shape lookup directories used by rbank
|
# Shape lookup directories used by rbank
|
||||||
ShapeLookupDirectories = [ ]
|
ShapeLookupDirectories = [ ]
|
||||||
ShapeLookupDirectories += [ EcosystemPath + "/shape_clodtex_build" ]
|
ShapeLookupDirectories += [ EcosystemPath + "/shape_clodtex_build" ]
|
||||||
ShapeLookupDirectories += [ EcosystemPath + "/shape_with_coarse_mesh" ]
|
ShapeLookupDirectories += [ EcosystemPath + "/shape_with_coarse_mesh" ]
|
||||||
|
|
||||||
# Map lookup directories not yet used
|
# Map lookup directories not yet used
|
||||||
MapLookupDirectories = [ ]
|
MapLookupDirectories = [ ]
|
||||||
MapLookupDirectories += [ EcosystemPath + "/map_export" ]
|
MapLookupDirectories += [ EcosystemPath + "/map_export" ]
|
||||||
MapLookupDirectories += [ EcosystemPath + "/map_uncompressed" ]
|
MapLookupDirectories += [ EcosystemPath + "/map_uncompressed" ]
|
||||||
|
|
||||||
|
|
||||||
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
|
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
|
||||||
|
|
||||||
# Map directories
|
# Map directories
|
||||||
MapExportDirectory = CommonPath + "/map_export"
|
MapExportDirectory = CommonPath + "/map_export"
|
||||||
MapUncompressedExportDirectory = CommonPath + "/map_uncompressed"
|
MapUncompressedExportDirectory = CommonPath + "/map_uncompressed"
|
||||||
|
|
||||||
# Shape directories
|
# Shape directories
|
||||||
ShapeTagExportDirectory = CommonPath + "/shape_tag"
|
ShapeTagExportDirectory = CommonPath + "/shape_tag"
|
||||||
ShapeNotOptimizedExportDirectory = CommonPath + "/shape_not_optimized"
|
ShapeNotOptimizedExportDirectory = CommonPath + "/shape_not_optimized"
|
||||||
ShapeWithCoarseMeshExportDirectory = CommonPath + "/shape_with_coarse_mesh"
|
ShapeWithCoarseMeshExportDirectory = CommonPath + "/shape_with_coarse_mesh"
|
||||||
ShapeLightmapNotOptimizedExportDirectory = CommonPath + "/shape_lightmap_not_optimized"
|
ShapeLightmapNotOptimizedExportDirectory = CommonPath + "/shape_lightmap_not_optimized"
|
||||||
ShapeAnimExportDirectory = CommonPath + "/shape_anim"
|
ShapeAnimExportDirectory = CommonPath + "/shape_anim"
|
||||||
|
|
||||||
# Smallbank directories
|
# Smallbank directories
|
||||||
SmallbankExportDirectory = CommonPath + "/smallbank"
|
SmallbankExportDirectory = CommonPath + "/smallbank"
|
||||||
|
|
||||||
# Tiles directories
|
# Tiles directories
|
||||||
TilesExportDirectory = CommonPath + "/tiles"
|
TilesExportDirectory = CommonPath + "/tiles"
|
||||||
|
|
||||||
# Tiles directories
|
# Tiles directories
|
||||||
DisplaceExportDirectory = CommonPath + "/diplace"
|
DisplaceExportDirectory = CommonPath + "/diplace"
|
||||||
|
|
||||||
# Veget directories
|
# Veget directories
|
||||||
VegetExportDirectory = CommonPath + "/veget"
|
VegetExportDirectory = CommonPath + "/veget"
|
||||||
VegetTagExportDirectory = CommonPath + "/veget_tag"
|
VegetTagExportDirectory = CommonPath + "/veget_tag"
|
||||||
|
|
||||||
# Veget Set directories
|
# Veget Set directories
|
||||||
VegetSetExportDirectory = CommonPath + "/veget_set"
|
VegetSetExportDirectory = CommonPath + "/veget_set"
|
||||||
|
|
||||||
# Ligo directories
|
# Ligo directories
|
||||||
LigoEcosystemExportDirectory = CommonPath + "/ligo_es"
|
LigoEcosystemExportDirectory = CommonPath + "/ligo_es"
|
||||||
LigoEcosystemIgExportDirectory = LigoEcosystemExportDirectory + "/igs"
|
LigoEcosystemIgExportDirectory = LigoEcosystemExportDirectory + "/igs"
|
||||||
LigoEcosystemZoneExportDirectory = LigoEcosystemExportDirectory + "/zones"
|
LigoEcosystemZoneExportDirectory = LigoEcosystemExportDirectory + "/zones"
|
||||||
LigoEcosystemZoneLigoExportDirectory = LigoEcosystemExportDirectory + "/zoneligos"
|
LigoEcosystemZoneLigoExportDirectory = LigoEcosystemExportDirectory + "/zoneligos"
|
||||||
LigoEcosystemCmbExportDirectory = LigoEcosystemExportDirectory + "/cmb"
|
LigoEcosystemCmbExportDirectory = LigoEcosystemExportDirectory + "/cmb"
|
||||||
LigoEcosystemTagExportDirectory = CommonPath + "/ligo_es_tag"
|
LigoEcosystemTagExportDirectory = CommonPath + "/ligo_es_tag"
|
||||||
|
|
||||||
# Zone directories
|
# Zone directories
|
||||||
ZoneExportDirectory = CommonPath + "/zone"
|
ZoneExportDirectory = CommonPath + "/zone"
|
||||||
|
|
||||||
# PACS primitives directories
|
# PACS primitives directories
|
||||||
PacsPrimExportDirectory = CommonPath + "/pacs_prim"
|
PacsPrimExportDirectory = CommonPath + "/pacs_prim"
|
||||||
PacsPrimTagExportDirectory = CommonPath + "/pacs_prim_tag"
|
PacsPrimTagExportDirectory = CommonPath + "/pacs_prim_tag"
|
||||||
|
|
||||||
|
|
||||||
# *** BUILD DIRECTORIES FOR THE BUILD PIPELINE ***
|
# *** BUILD DIRECTORIES FOR THE BUILD PIPELINE ***
|
||||||
|
|
||||||
# Map directories
|
# Map directories
|
||||||
MapBuildDirectory = CommonPath + "/map"
|
MapBuildDirectory = CommonPath + "/map"
|
||||||
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
|
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
|
||||||
MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
|
MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
|
||||||
MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
|
MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
|
||||||
MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
|
MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
|
||||||
MapTagBuildDirectory = CommonPath + "/map_tag"
|
MapTagBuildDirectory = CommonPath + "/map_tag"
|
||||||
|
|
||||||
# Shape directories
|
# Shape directories
|
||||||
ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
|
ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
|
||||||
ShapeWithCoarseMeshBuildDirectory = CommonPath + "/shape_with_coarse_mesh_builded"
|
ShapeWithCoarseMeshBuildDirectory = CommonPath + "/shape_with_coarse_mesh_builded"
|
||||||
ShapeLightmapBuildDirectory = CommonPath + "/shape_lightmap"
|
ShapeLightmapBuildDirectory = CommonPath + "/shape_lightmap"
|
||||||
ShapeLightmap16BitsBuildDirectory = CommonPath + "/shape_lightmap_16_bits"
|
ShapeLightmap16BitsBuildDirectory = CommonPath + "/shape_lightmap_16_bits"
|
||||||
|
|
||||||
# Farbank directories
|
# Farbank directories
|
||||||
FarbankBuildDirectory = CommonPath + "/farbank"
|
FarbankBuildDirectory = CommonPath + "/farbank"
|
||||||
|
|
||||||
# Ig directories ************** TODO CONFIRM IN IG BUILD PROCESS ************ FIX RBANK IF NEEDED ***********
|
# Ig directories ************** TODO CONFIRM IN IG BUILD PROCESS ************ FIX RBANK IF NEEDED ***********
|
||||||
IgLandBuildDirectory = "_invalid"
|
IgLandBuildDirectory = "_invalid"
|
||||||
IgOtherBuildDirectory = "_invalid"
|
IgOtherBuildDirectory = "_invalid"
|
||||||
|
|
||||||
# Rbank directories
|
# Rbank directories
|
||||||
RbankOutputBuildDirectory = "_invalid"
|
RbankOutputBuildDirectory = "_invalid"
|
||||||
|
|
||||||
# Ligo directories
|
# Ligo directories
|
||||||
|
|
||||||
|
|
||||||
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
|
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
|
||||||
|
|
||||||
# Map directory
|
# Map directory
|
||||||
MapInstallDirectory = CommonName + "_maps"
|
MapInstallDirectory = CommonName + "_maps"
|
||||||
BitmapInstallDirectory = MapInstallDirectory
|
BitmapInstallDirectory = MapInstallDirectory
|
||||||
|
|
||||||
# Shape directory
|
# Shape directory
|
||||||
ShapeInstallDirectory = CommonName + "_shapes"
|
ShapeInstallDirectory = CommonName + "_shapes"
|
||||||
|
|
||||||
# Lightmap directory
|
# Lightmap directory
|
||||||
LightmapInstallDirectory = CommonName + "_lightmaps"
|
LightmapInstallDirectory = CommonName + "_lightmaps"
|
||||||
|
|
||||||
# Tile directory
|
# Tile directory
|
||||||
TilesInstallDirectory = CommonName + "_tiles"
|
TilesInstallDirectory = CommonName + "_tiles"
|
||||||
|
|
||||||
# Displace directory
|
# Displace directory
|
||||||
DisplaceInstallDirectory = CommonName + "_displaces"
|
DisplaceInstallDirectory = CommonName + "_displaces"
|
||||||
|
|
||||||
# Bank directory
|
# Bank directory
|
||||||
BankInstallDirectory = CommonName + "_bank"
|
BankInstallDirectory = CommonName + "_bank"
|
||||||
|
|
||||||
# Vegetable set directory
|
# Vegetable set directory
|
||||||
VegetSetInstallDirectory = CommonName + "_vegetable_sets"
|
VegetSetInstallDirectory = CommonName + "_vegetable_sets"
|
||||||
|
|
||||||
# Vegetable shape directory
|
# Vegetable shape directory
|
||||||
VegetInstallDirectory = CommonName + "_vegetables"
|
VegetInstallDirectory = CommonName + "_vegetables"
|
||||||
|
|
||||||
# PACS primitives directories
|
# PACS primitives directories
|
||||||
PacsPrimInstallDirectory = CommonName + "_pacs_prim"
|
PacsPrimInstallDirectory = CommonName + "_pacs_prim"
|
||||||
|
@ -1,122 +1,122 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# #################################################################
|
# #################################################################
|
||||||
# ## %PreGenWarning%
|
# ## %PreGenWarning%
|
||||||
# #################################################################
|
# #################################################################
|
||||||
#
|
#
|
||||||
# \file config.py
|
# \file config.py
|
||||||
# \brief Process configuration
|
# \brief Process configuration
|
||||||
# \date %PreGenDateTimeStamp%
|
# \date %PreGenDateTimeStamp%
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Process configuration for '%PreGenEcosystemName%' ecosystem.
|
# Process configuration for '%PreGenEcosystemName%' ecosystem.
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
# *** PROCESS CONFIGURATION ***
|
# *** PROCESS CONFIGURATION ***
|
||||||
|
|
||||||
# *** PROCESS CONFIG ***
|
# *** PROCESS CONFIG ***
|
||||||
ProcessToComplete = [ ]
|
ProcessToComplete = [ ]
|
||||||
ProcessToComplete += [ "shape" ]
|
ProcessToComplete += [ "shape" ]
|
||||||
ProcessToComplete += [ "map" ]
|
ProcessToComplete += [ "map" ]
|
||||||
ProcessToComplete += [ "smallbank" ]
|
ProcessToComplete += [ "smallbank" ]
|
||||||
ProcessToComplete += [ "farbank" ]
|
ProcessToComplete += [ "farbank" ]
|
||||||
ProcessToComplete += [ "tiles" ]
|
ProcessToComplete += [ "tiles" ]
|
||||||
ProcessToComplete += [ "displace" ]
|
ProcessToComplete += [ "displace" ]
|
||||||
ProcessToComplete += [ "veget" ]
|
ProcessToComplete += [ "veget" ]
|
||||||
ProcessToComplete += [ "vegetset" ]
|
ProcessToComplete += [ "vegetset" ]
|
||||||
ProcessToComplete += [ "ligo" ]
|
ProcessToComplete += [ "ligo" ]
|
||||||
ProcessToComplete += [ "pacs_prim" ]
|
ProcessToComplete += [ "pacs_prim" ]
|
||||||
|
|
||||||
|
|
||||||
# *** ECOSYSTEM AND CONTINENT NAMES ***
|
# *** ECOSYSTEM AND CONTINENT NAMES ***
|
||||||
|
|
||||||
EcosystemName = "%PreGenEcosystemName%"
|
EcosystemName = "%PreGenEcosystemName%"
|
||||||
EcosystemPath = "ecosystems/" + EcosystemName
|
EcosystemPath = "ecosystems/" + EcosystemName
|
||||||
CommonName = EcosystemName
|
CommonName = EcosystemName
|
||||||
CommonPath = EcosystemPath
|
CommonPath = EcosystemPath
|
||||||
|
|
||||||
|
|
||||||
# *** MAP EXPORT OPTIONS ***
|
# *** MAP EXPORT OPTIONS ***
|
||||||
PanoplyFileList = [ ]
|
PanoplyFileList = [ ]
|
||||||
HlsBankFileName = ""
|
HlsBankFileName = ""
|
||||||
|
|
||||||
# *** SHAPE EXPORT OPTIONS ***
|
# *** SHAPE EXPORT OPTIONS ***
|
||||||
|
|
||||||
# Compute lightmaps ?
|
# Compute lightmaps ?
|
||||||
ShapeExportOptExportLighting = "%PreGenShapeExportOptExportLighting%"
|
ShapeExportOptExportLighting = "%PreGenShapeExportOptExportLighting%"
|
||||||
|
|
||||||
# Cast shadow in lightmap ?
|
# Cast shadow in lightmap ?
|
||||||
ShapeExportOptShadow = "%PreGenShapeExportOptShadow%"
|
ShapeExportOptShadow = "%PreGenShapeExportOptShadow%"
|
||||||
|
|
||||||
# Lighting limits. 0 : normal, 1 : soft shadows
|
# Lighting limits. 0 : normal, 1 : soft shadows
|
||||||
ShapeExportOptLightingLimit = %PreGenShapeExportOptLightingLimit%
|
ShapeExportOptLightingLimit = %PreGenShapeExportOptLightingLimit%
|
||||||
|
|
||||||
# Lightmap lumel size
|
# Lightmap lumel size
|
||||||
ShapeExportOptLumelSize = "%PreGenShapeExportOptLumelSize%"
|
ShapeExportOptLumelSize = "%PreGenShapeExportOptLumelSize%"
|
||||||
|
|
||||||
# Oversampling value. Can be 1, 2, 4 or 8
|
# Oversampling value. Can be 1, 2, 4 or 8
|
||||||
ShapeExportOptOversampling = %PreGenShapeExportOptOversampling%
|
ShapeExportOptOversampling = %PreGenShapeExportOptOversampling%
|
||||||
|
|
||||||
# Does the lightmap must be generated in 8 bits format ?
|
# Does the lightmap must be generated in 8 bits format ?
|
||||||
ShapeExportOpt8BitsLightmap = "%PreGenShapeExportOpt8BitsLightmap%"
|
ShapeExportOpt8BitsLightmap = "%PreGenShapeExportOpt8BitsLightmap%"
|
||||||
|
|
||||||
# Does the lightmaps export must generate logs ?
|
# Does the lightmaps export must generate logs ?
|
||||||
ShapeExportOptLightmapLog = "%PreGenShapeExportOptLightmapLog%"
|
ShapeExportOptLightmapLog = "%PreGenShapeExportOptLightmapLog%"
|
||||||
|
|
||||||
# Coarse mesh texture mul size
|
# Coarse mesh texture mul size
|
||||||
TextureMulSizeValue = "%PreGenTextureMulSizeValue%"
|
TextureMulSizeValue = "%PreGenTextureMulSizeValue%"
|
||||||
|
|
||||||
ClodConfigFile = ""
|
ClodConfigFile = ""
|
||||||
|
|
||||||
# *** COARSE MESH TEXTURE NAME ***
|
# *** COARSE MESH TEXTURE NAME ***
|
||||||
CoarseMeshTextureNames = [ ]
|
CoarseMeshTextureNames = [ ]
|
||||||
%PreGenCoarseMeshTextureNames%
|
%PreGenCoarseMeshTextureNames%
|
||||||
# *** POSTFIX USED BY THE MULTIPLE TILES SYSTEM ***
|
# *** POSTFIX USED BY THE MULTIPLE TILES SYSTEM ***
|
||||||
MultipleTilesPostfix = [ ]
|
MultipleTilesPostfix = [ ]
|
||||||
%PreGenMultipleTilesPostfix%
|
%PreGenMultipleTilesPostfix%
|
||||||
# *** BANK EXPORT OPTIONS ***
|
# *** BANK EXPORT OPTIONS ***
|
||||||
|
|
||||||
# Name of the tilebank to use
|
# Name of the tilebank to use
|
||||||
BankTileBankName = EcosystemName
|
BankTileBankName = EcosystemName
|
||||||
|
|
||||||
# *** RBANK EXPORT OPTIONS ***
|
# *** RBANK EXPORT OPTIONS ***
|
||||||
|
|
||||||
# Output names
|
# Output names
|
||||||
RbankRbankName = "_invalid"
|
RbankRbankName = "_invalid"
|
||||||
|
|
||||||
# *** LIGO OPTIONS ***
|
# *** LIGO OPTIONS ***
|
||||||
|
|
||||||
LigoExportLand = ""
|
LigoExportLand = ""
|
||||||
LigoExportOnePass = 0
|
LigoExportOnePass = 0
|
||||||
|
|
||||||
# *** MAPS OPTIONS ***
|
# *** MAPS OPTIONS ***
|
||||||
|
|
||||||
ReduceBitmapFactor = 0
|
ReduceBitmapFactor = 0
|
||||||
# list all panoply files
|
# list all panoply files
|
||||||
MapPanoplyFileList = None
|
MapPanoplyFileList = None
|
||||||
# name of the .hlsbank to build.
|
# name of the .hlsbank to build.
|
||||||
MapHlsBankFileName = None
|
MapHlsBankFileName = None
|
||||||
|
|
||||||
# *** SHAPE BUILD OPTIONS *
|
# *** SHAPE BUILD OPTIONS *
|
||||||
|
|
||||||
BuildShadowSkinEnabled = False
|
BuildShadowSkinEnabled = False
|
||||||
ClodConfigFile = ""
|
ClodConfigFile = ""
|
||||||
|
|
||||||
# *** PACS_PRIM OPTIONS ***
|
# *** PACS_PRIM OPTIONS ***
|
||||||
WantLandscapeColPrimPacsList = True
|
WantLandscapeColPrimPacsList = True
|
||||||
|
@ -1,65 +1,65 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 0_setup.py
|
# \file 0_setup.py
|
||||||
# \brief Run all setup processes
|
# \brief Run all setup processes
|
||||||
# \date 2009-02-18 15:28GMT
|
# \date 2009-02-18 15:28GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Run all setup processes
|
# Run all setup processes
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../configuration")
|
sys.path.append("../configuration")
|
||||||
if os.path.isfile("generate_all.log"):
|
if os.path.isfile("generate_all.log"):
|
||||||
os.remove("generate_all.log")
|
os.remove("generate_all.log")
|
||||||
log = open("generate_all.log", "w")
|
log = open("generate_all.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from tools import *
|
from tools import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Generate all")
|
printLog(log, "--- Generate all")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
subprocess.call([ "python", "generate_simple_max_exporters.py" ])
|
subprocess.call([ "python", "generate_simple_max_exporters.py" ])
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
printLog(log, "<" + processName + "> " + str(e))
|
printLog(log, "<" + processName + "> " + str(e))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
subprocess.call([ "python", "generate_tagged_max_exporters.py" ])
|
subprocess.call([ "python", "generate_tagged_max_exporters.py" ])
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
printLog(log, "<" + processName + "> " + str(e))
|
printLog(log, "<" + processName + "> " + str(e))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
subprocess.call([ "python", "generate_ecosystem_projects.py" ])
|
subprocess.call([ "python", "generate_ecosystem_projects.py" ])
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
printLog(log, "<" + processName + "> " + str(e))
|
printLog(log, "<" + processName + "> " + str(e))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
@ -1,278 +1,278 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file generate_ecosystem_projects.py
|
# \file generate_ecosystem_projects.py
|
||||||
# \brief Run all setup processes
|
# \brief Run all setup processes
|
||||||
# \date 2010-09-02 10:36GMT
|
# \date 2010-09-02 10:36GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Generate ecosystem projects
|
# Generate ecosystem projects
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../configuration")
|
sys.path.append("../configuration")
|
||||||
if os.path.isfile("generate_ecosystem_projects.log"):
|
if os.path.isfile("generate_ecosystem_projects.log"):
|
||||||
os.remove("generate_ecosystem_projects.log")
|
os.remove("generate_ecosystem_projects.log")
|
||||||
log = open("generate_ecosystem_projects.log", "w")
|
log = open("generate_ecosystem_projects.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from tools import *
|
from tools import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Generate ecosystem projects")
|
printLog(log, "--- Generate ecosystem projects")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
templateDir = os.getcwd().replace("\\", "/") + "/ecosystem_project_template"
|
templateDir = os.getcwd().replace("\\", "/") + "/ecosystem_project_template"
|
||||||
mkPath(log, templateDir)
|
mkPath(log, templateDir)
|
||||||
|
|
||||||
os.chdir("..")
|
os.chdir("..")
|
||||||
|
|
||||||
|
|
||||||
# Scroll down to add an ecosystem.
|
# Scroll down to add an ecosystem.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
DefaultShapeExportOptExportLighting = "true"
|
DefaultShapeExportOptExportLighting = "true"
|
||||||
DefaultShapeExportOptShadow = "true"
|
DefaultShapeExportOptShadow = "true"
|
||||||
DefaultShapeExportOptLightingLimit = "1"
|
DefaultShapeExportOptLightingLimit = "1"
|
||||||
DefaultShapeExportOptLumelSize = "0.25"
|
DefaultShapeExportOptLumelSize = "0.25"
|
||||||
DefaultShapeExportOptOversampling = "1"
|
DefaultShapeExportOptOversampling = "1"
|
||||||
DefaultShapeExportOpt8BitsLightmap = "true"
|
DefaultShapeExportOpt8BitsLightmap = "true"
|
||||||
DefaultShapeExportOptLightmapLog = "true"
|
DefaultShapeExportOptLightmapLog = "true"
|
||||||
DefaultTextureMulSizeValue = "1.5"
|
DefaultTextureMulSizeValue = "1.5"
|
||||||
DefaultSeasonSuffixes = [ "sp" ] + [ "su" ] + [ "au" ] + [ "wi" ]
|
DefaultSeasonSuffixes = [ "sp" ] + [ "su" ] + [ "au" ] + [ "wi" ]
|
||||||
DefaultMapSubdirectories = [ ]
|
DefaultMapSubdirectories = [ ]
|
||||||
DefaultTileDirectories = [ ]
|
DefaultTileDirectories = [ ]
|
||||||
|
|
||||||
|
|
||||||
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
||||||
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
||||||
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
|
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
|
||||||
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
||||||
ShapeExportOptOversampling = DefaultShapeExportOptOversampling
|
ShapeExportOptOversampling = DefaultShapeExportOptOversampling
|
||||||
ShapeExportOpt8BitsLightmap = DefaultShapeExportOpt8BitsLightmap
|
ShapeExportOpt8BitsLightmap = DefaultShapeExportOpt8BitsLightmap
|
||||||
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
||||||
TextureMulSizeValue = DefaultTextureMulSizeValue
|
TextureMulSizeValue = DefaultTextureMulSizeValue
|
||||||
SeasonSuffixes = DefaultSeasonSuffixes
|
SeasonSuffixes = DefaultSeasonSuffixes
|
||||||
MapSubdirectories = DefaultMapSubdirectories
|
MapSubdirectories = DefaultMapSubdirectories
|
||||||
TileDirectories = DefaultTileDirectories
|
TileDirectories = DefaultTileDirectories
|
||||||
|
|
||||||
|
|
||||||
PreGenDateTimeStamp = None
|
PreGenDateTimeStamp = None
|
||||||
PreGenEcosystemName = None
|
PreGenEcosystemName = None
|
||||||
PreGenDatabaseRootName = None
|
PreGenDatabaseRootName = None
|
||||||
PreGenCoarseMeshTextureNames = None
|
PreGenCoarseMeshTextureNames = None
|
||||||
PreGenMultipleTilesPostfix = None
|
PreGenMultipleTilesPostfix = None
|
||||||
PreGenMapSubdirectories = None
|
PreGenMapSubdirectories = None
|
||||||
PreGenTileSourceDirectories = None
|
PreGenTileSourceDirectories = None
|
||||||
|
|
||||||
|
|
||||||
def transformLine(line):
|
def transformLine(line):
|
||||||
newline = line.replace("%PreGenWarning%", "WARNING : this is a generated file, don't change it !")
|
newline = line.replace("%PreGenWarning%", "WARNING : this is a generated file, don't change it !")
|
||||||
newline = newline.replace("%PreGenDateTimeStamp%", PreGenDateTimeStamp)
|
newline = newline.replace("%PreGenDateTimeStamp%", PreGenDateTimeStamp)
|
||||||
|
|
||||||
newline = newline.replace("%PreGenEcosystemName%", PreGenEcosystemName)
|
newline = newline.replace("%PreGenEcosystemName%", PreGenEcosystemName)
|
||||||
newline = newline.replace("%PreGenDatabaseRootName%", PreGenDatabaseRootName)
|
newline = newline.replace("%PreGenDatabaseRootName%", PreGenDatabaseRootName)
|
||||||
|
|
||||||
newline = newline.replace("%PreGenCoarseMeshTextureNames%", PreGenCoarseMeshTextureNames)
|
newline = newline.replace("%PreGenCoarseMeshTextureNames%", PreGenCoarseMeshTextureNames)
|
||||||
newline = newline.replace("%PreGenMultipleTilesPostfix%", PreGenMultipleTilesPostfix)
|
newline = newline.replace("%PreGenMultipleTilesPostfix%", PreGenMultipleTilesPostfix)
|
||||||
newline = newline.replace("%PreGenMapSubdirectories%", PreGenMapSubdirectories)
|
newline = newline.replace("%PreGenMapSubdirectories%", PreGenMapSubdirectories)
|
||||||
newline = newline.replace("%PreGenTileSourceDirectories%", PreGenTileSourceDirectories)
|
newline = newline.replace("%PreGenTileSourceDirectories%", PreGenTileSourceDirectories)
|
||||||
|
|
||||||
newline = newline.replace("%PreGenShapeExportOptExportLighting%", ShapeExportOptExportLighting)
|
newline = newline.replace("%PreGenShapeExportOptExportLighting%", ShapeExportOptExportLighting)
|
||||||
newline = newline.replace("%PreGenShapeExportOptShadow%", ShapeExportOptShadow)
|
newline = newline.replace("%PreGenShapeExportOptShadow%", ShapeExportOptShadow)
|
||||||
newline = newline.replace("%PreGenShapeExportOptLightingLimit%", ShapeExportOptLightingLimit)
|
newline = newline.replace("%PreGenShapeExportOptLightingLimit%", ShapeExportOptLightingLimit)
|
||||||
newline = newline.replace("%PreGenShapeExportOptLumelSize%", ShapeExportOptLumelSize)
|
newline = newline.replace("%PreGenShapeExportOptLumelSize%", ShapeExportOptLumelSize)
|
||||||
newline = newline.replace("%PreGenShapeExportOptOversampling%", ShapeExportOptOversampling)
|
newline = newline.replace("%PreGenShapeExportOptOversampling%", ShapeExportOptOversampling)
|
||||||
newline = newline.replace("%PreGenShapeExportOpt8BitsLightmap%", ShapeExportOpt8BitsLightmap)
|
newline = newline.replace("%PreGenShapeExportOpt8BitsLightmap%", ShapeExportOpt8BitsLightmap)
|
||||||
newline = newline.replace("%PreGenShapeExportOptLightmapLog%", ShapeExportOptLightmapLog)
|
newline = newline.replace("%PreGenShapeExportOptLightmapLog%", ShapeExportOptLightmapLog)
|
||||||
newline = newline.replace("%PreGenTextureMulSizeValue%", TextureMulSizeValue)
|
newline = newline.replace("%PreGenTextureMulSizeValue%", TextureMulSizeValue)
|
||||||
newline = newline.replace("%PreGenTileSourceDirectories%", PreGenTileSourceDirectories)
|
newline = newline.replace("%PreGenTileSourceDirectories%", PreGenTileSourceDirectories)
|
||||||
|
|
||||||
return newline
|
return newline
|
||||||
|
|
||||||
def generateFile(sourceFile, destFile):
|
def generateFile(sourceFile, destFile):
|
||||||
srcf = open(sourceFile, "r")
|
srcf = open(sourceFile, "r")
|
||||||
dstf = open(destFile, "w")
|
dstf = open(destFile, "w")
|
||||||
printLog(log, "WRITE " + destFile)
|
printLog(log, "WRITE " + destFile)
|
||||||
for line in srcf:
|
for line in srcf:
|
||||||
dstf.write(transformLine(line))
|
dstf.write(transformLine(line))
|
||||||
dstf.close()
|
dstf.close()
|
||||||
srcf.close()
|
srcf.close()
|
||||||
|
|
||||||
def generateEcosystem(ecosystemName, databaseRootName):
|
def generateEcosystem(ecosystemName, databaseRootName):
|
||||||
global PreGenEcosystemName
|
global PreGenEcosystemName
|
||||||
PreGenEcosystemName = ecosystemName
|
PreGenEcosystemName = ecosystemName
|
||||||
global PreGenDatabaseRootName
|
global PreGenDatabaseRootName
|
||||||
PreGenDatabaseRootName = databaseRootName
|
PreGenDatabaseRootName = databaseRootName
|
||||||
global PreGenDateTimeStamp
|
global PreGenDateTimeStamp
|
||||||
PreGenDateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
|
PreGenDateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
|
||||||
|
|
||||||
global PreGenMultipleTilesPostfix
|
global PreGenMultipleTilesPostfix
|
||||||
PreGenMultipleTilesPostfix = ""
|
PreGenMultipleTilesPostfix = ""
|
||||||
global PreGenCoarseMeshTextureNames
|
global PreGenCoarseMeshTextureNames
|
||||||
PreGenCoarseMeshTextureNames = ""
|
PreGenCoarseMeshTextureNames = ""
|
||||||
global PreGenTileSourceDirectories
|
global PreGenTileSourceDirectories
|
||||||
PreGenTileSourceDirectories = ""
|
PreGenTileSourceDirectories = ""
|
||||||
for suffix in SeasonSuffixes:
|
for suffix in SeasonSuffixes:
|
||||||
PreGenMultipleTilesPostfix += "MultipleTilesPostfix += [ \"_" + suffix + "\" ]\n"
|
PreGenMultipleTilesPostfix += "MultipleTilesPostfix += [ \"_" + suffix + "\" ]\n"
|
||||||
PreGenCoarseMeshTextureNames += "CoarseMeshTextureNames += [ \"nel_coarse_mesh_\" + EcosystemName + \"_" + suffix + "\" ]\n"
|
PreGenCoarseMeshTextureNames += "CoarseMeshTextureNames += [ \"nel_coarse_mesh_\" + EcosystemName + \"_" + suffix + "\" ]\n"
|
||||||
for tiledir in TileDirectories:
|
for tiledir in TileDirectories:
|
||||||
PreGenTileSourceDirectories += "TilesSourceDirectories += [ \"landscape/_texture_tiles/\" + EcosystemName + \"_" + suffix + "/" + tiledir + "\" ]\n"
|
PreGenTileSourceDirectories += "TilesSourceDirectories += [ \"landscape/_texture_tiles/\" + EcosystemName + \"_" + suffix + "/" + tiledir + "\" ]\n"
|
||||||
global PreGenMapSubdirectories
|
global PreGenMapSubdirectories
|
||||||
PreGenMapSubdirectories = ""
|
PreGenMapSubdirectories = ""
|
||||||
for subdir in MapSubdirectories:
|
for subdir in MapSubdirectories:
|
||||||
PreGenMapSubdirectories += "MapSourceDirectories += [ DatabaseRootPath + \"/decors/_textures/" + subdir + "\" ]\n"
|
PreGenMapSubdirectories += "MapSourceDirectories += [ DatabaseRootPath + \"/decors/_textures/" + subdir + "\" ]\n"
|
||||||
|
|
||||||
destDir = WorkspaceDirectory + "/ecosystems/" + ecosystemName
|
destDir = WorkspaceDirectory + "/ecosystems/" + ecosystemName
|
||||||
mkPath(log, destDir)
|
mkPath(log, destDir)
|
||||||
|
|
||||||
generateFile(templateDir + "/process.py", destDir + "/process.py")
|
generateFile(templateDir + "/process.py", destDir + "/process.py")
|
||||||
generateFile(templateDir + "/directories.py", destDir + "/directories.py")
|
generateFile(templateDir + "/directories.py", destDir + "/directories.py")
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Add new ecosystems below this line.
|
# Add new ecosystems below this line.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# DESERT
|
# DESERT
|
||||||
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
||||||
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
||||||
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
|
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
|
||||||
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
||||||
ShapeExportOptOversampling = DefaultShapeExportOptOversampling
|
ShapeExportOptOversampling = DefaultShapeExportOptOversampling
|
||||||
ShapeExportOpt8BitsLightmap = DefaultShapeExportOpt8BitsLightmap
|
ShapeExportOpt8BitsLightmap = DefaultShapeExportOpt8BitsLightmap
|
||||||
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
||||||
TextureMulSizeValue = DefaultTextureMulSizeValue
|
TextureMulSizeValue = DefaultTextureMulSizeValue
|
||||||
SeasonSuffixes = DefaultSeasonSuffixes
|
SeasonSuffixes = DefaultSeasonSuffixes
|
||||||
MapSubdirectories = [ ]
|
MapSubdirectories = [ ]
|
||||||
MapSubdirectories += [ "vegetations" ]
|
MapSubdirectories += [ "vegetations" ]
|
||||||
TileDirectories = [ ]
|
TileDirectories = [ ]
|
||||||
TileDirectories += [ "1.5-marecage_profond" ]
|
TileDirectories += [ "1.5-marecage_profond" ]
|
||||||
TileDirectories += [ "1-marecages" ]
|
TileDirectories += [ "1-marecages" ]
|
||||||
TileDirectories += [ "2-citees" ]
|
TileDirectories += [ "2-citees" ]
|
||||||
TileDirectories += [ "3-fond_canyon" ]
|
TileDirectories += [ "3-fond_canyon" ]
|
||||||
TileDirectories += [ "4.2-boisbandeclair" ]
|
TileDirectories += [ "4.2-boisbandeclair" ]
|
||||||
TileDirectories += [ "4.5-desert2boisbande" ]
|
TileDirectories += [ "4.5-desert2boisbande" ]
|
||||||
TileDirectories += [ "4-falaise_bois_bande" ]
|
TileDirectories += [ "4-falaise_bois_bande" ]
|
||||||
TileDirectories += [ "5-falaise_normales" ]
|
TileDirectories += [ "5-falaise_normales" ]
|
||||||
TileDirectories += [ "6.5-desertalternatif" ]
|
TileDirectories += [ "6.5-desertalternatif" ]
|
||||||
TileDirectories += [ "6-desert" ]
|
TileDirectories += [ "6-desert" ]
|
||||||
TileDirectories += [ "7-routes" ]
|
TileDirectories += [ "7-routes" ]
|
||||||
TileDirectories += [ "8-foretbrule" ]
|
TileDirectories += [ "8-foretbrule" ]
|
||||||
generateEcosystem("desert", "fyros")
|
generateEcosystem("desert", "fyros")
|
||||||
|
|
||||||
|
|
||||||
# JUNGLE
|
# JUNGLE
|
||||||
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
||||||
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
||||||
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
|
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
|
||||||
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
||||||
ShapeExportOptOversampling = DefaultShapeExportOptOversampling
|
ShapeExportOptOversampling = DefaultShapeExportOptOversampling
|
||||||
ShapeExportOpt8BitsLightmap = "false"
|
ShapeExportOpt8BitsLightmap = "false"
|
||||||
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
||||||
TextureMulSizeValue = DefaultTextureMulSizeValue
|
TextureMulSizeValue = DefaultTextureMulSizeValue
|
||||||
SeasonSuffixes = DefaultSeasonSuffixes
|
SeasonSuffixes = DefaultSeasonSuffixes
|
||||||
MapSubdirectories = [ ]
|
MapSubdirectories = [ ]
|
||||||
MapSubdirectories += [ "vegetations" ]
|
MapSubdirectories += [ "vegetations" ]
|
||||||
TileDirectories = [ ]
|
TileDirectories = [ ]
|
||||||
TileDirectories += [ "10-crevassejungle" ]
|
TileDirectories += [ "10-crevassejungle" ]
|
||||||
TileDirectories += [ "11-paroisjungle" ]
|
TileDirectories += [ "11-paroisjungle" ]
|
||||||
TileDirectories += [ "12-vasejungle" ]
|
TileDirectories += [ "12-vasejungle" ]
|
||||||
TileDirectories += [ "1-junglemousse" ]
|
TileDirectories += [ "1-junglemousse" ]
|
||||||
TileDirectories += [ "2-junglefeuilles" ]
|
TileDirectories += [ "2-junglefeuilles" ]
|
||||||
TileDirectories += [ "3-jungleherbesseche" ]
|
TileDirectories += [ "3-jungleherbesseche" ]
|
||||||
TileDirectories += [ "4-jungleherbevieille" ]
|
TileDirectories += [ "4-jungleherbevieille" ]
|
||||||
TileDirectories += [ "5-jungleterreaux" ]
|
TileDirectories += [ "5-jungleterreaux" ]
|
||||||
TileDirectories += [ "6-junglegoo" ]
|
TileDirectories += [ "6-junglegoo" ]
|
||||||
TileDirectories += [ "7-sciurejungle" ]
|
TileDirectories += [ "7-sciurejungle" ]
|
||||||
TileDirectories += [ "8-terrejungle" ]
|
TileDirectories += [ "8-terrejungle" ]
|
||||||
TileDirectories += [ "9-falaisejungle" ]
|
TileDirectories += [ "9-falaisejungle" ]
|
||||||
TileDirectories += [ "Transitions" ]
|
TileDirectories += [ "Transitions" ]
|
||||||
generateEcosystem("jungle", "jungle")
|
generateEcosystem("jungle", "jungle")
|
||||||
|
|
||||||
|
|
||||||
# PRIMES RACINES
|
# PRIMES RACINES
|
||||||
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
||||||
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
||||||
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
|
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
|
||||||
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
||||||
ShapeExportOptOversampling = DefaultShapeExportOptOversampling
|
ShapeExportOptOversampling = DefaultShapeExportOptOversampling
|
||||||
ShapeExportOpt8BitsLightmap = "false"
|
ShapeExportOpt8BitsLightmap = "false"
|
||||||
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
||||||
TextureMulSizeValue = DefaultTextureMulSizeValue
|
TextureMulSizeValue = DefaultTextureMulSizeValue
|
||||||
SeasonSuffixes = DefaultSeasonSuffixes
|
SeasonSuffixes = DefaultSeasonSuffixes
|
||||||
MapSubdirectories = [ ]
|
MapSubdirectories = [ ]
|
||||||
MapSubdirectories += [ "vegetations" ]
|
MapSubdirectories += [ "vegetations" ]
|
||||||
MapSubdirectories += [ "batiments" ]
|
MapSubdirectories += [ "batiments" ]
|
||||||
TileDirectories = [ ]
|
TileDirectories = [ ]
|
||||||
TileDirectories += [ "PR-creux" ]
|
TileDirectories += [ "PR-creux" ]
|
||||||
TileDirectories += [ "PR-dome-moussu" ]
|
TileDirectories += [ "PR-dome-moussu" ]
|
||||||
TileDirectories += [ "PR-kitiniere" ]
|
TileDirectories += [ "PR-kitiniere" ]
|
||||||
TileDirectories += [ "PR-mousse-licken" ]
|
TileDirectories += [ "PR-mousse-licken" ]
|
||||||
TileDirectories += [ "PR-mousse-spongieus" ]
|
TileDirectories += [ "PR-mousse-spongieus" ]
|
||||||
TileDirectories += [ "PR-parois" ]
|
TileDirectories += [ "PR-parois" ]
|
||||||
TileDirectories += [ "PR-sol-mousse" ]
|
TileDirectories += [ "PR-sol-mousse" ]
|
||||||
TileDirectories += [ "PR-souche" ]
|
TileDirectories += [ "PR-souche" ]
|
||||||
TileDirectories += [ "PR-stalagmite" ]
|
TileDirectories += [ "PR-stalagmite" ]
|
||||||
TileDirectories += [ "PR-terre" ]
|
TileDirectories += [ "PR-terre" ]
|
||||||
TileDirectories += [ "aditif" ]
|
TileDirectories += [ "aditif" ]
|
||||||
generateEcosystem("primes_racines", "primes_racines")
|
generateEcosystem("primes_racines", "primes_racines")
|
||||||
|
|
||||||
|
|
||||||
# LACUSTRE
|
# LACUSTRE
|
||||||
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
||||||
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
||||||
ShapeExportOptLightingLimit = "0"
|
ShapeExportOptLightingLimit = "0"
|
||||||
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
||||||
ShapeExportOptOversampling = "8"
|
ShapeExportOptOversampling = "8"
|
||||||
ShapeExportOpt8BitsLightmap = "false"
|
ShapeExportOpt8BitsLightmap = "false"
|
||||||
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
||||||
TextureMulSizeValue = DefaultTextureMulSizeValue
|
TextureMulSizeValue = DefaultTextureMulSizeValue
|
||||||
SeasonSuffixes = DefaultSeasonSuffixes
|
SeasonSuffixes = DefaultSeasonSuffixes
|
||||||
MapSubdirectories = [ ]
|
MapSubdirectories = [ ]
|
||||||
MapSubdirectories += [ "vegetations" ]
|
MapSubdirectories += [ "vegetations" ]
|
||||||
TileDirectories = [ ]
|
TileDirectories = [ ]
|
||||||
TileDirectories += [ "1a-sable-marin" ]
|
TileDirectories += [ "1a-sable-marin" ]
|
||||||
TileDirectories += [ "1-plages" ]
|
TileDirectories += [ "1-plages" ]
|
||||||
TileDirectories += [ "2-iles" ]
|
TileDirectories += [ "2-iles" ]
|
||||||
TileDirectories += [ "2-ilesa" ]
|
TileDirectories += [ "2-ilesa" ]
|
||||||
TileDirectories += [ "2-iles-marines" ]
|
TileDirectories += [ "2-iles-marines" ]
|
||||||
TileDirectories += [ "3-fondmarin2plage" ]
|
TileDirectories += [ "3-fondmarin2plage" ]
|
||||||
TileDirectories += [ "4-marecages" ]
|
TileDirectories += [ "4-marecages" ]
|
||||||
TileDirectories += [ "5-marecages" ]
|
TileDirectories += [ "5-marecages" ]
|
||||||
TileDirectories += [ "5-parois-marine" ]
|
TileDirectories += [ "5-parois-marine" ]
|
||||||
TileDirectories += [ "6-fond_marin" ]
|
TileDirectories += [ "6-fond_marin" ]
|
||||||
TileDirectories += [ "7-bassesiles" ]
|
TileDirectories += [ "7-bassesiles" ]
|
||||||
TileDirectories += [ "7-mousseter" ]
|
TileDirectories += [ "7-mousseter" ]
|
||||||
TileDirectories += [ "7-racines" ]
|
TileDirectories += [ "7-racines" ]
|
||||||
TileDirectories += [ "8-mousse_marine" ]
|
TileDirectories += [ "8-mousse_marine" ]
|
||||||
TileDirectories += [ "constructible" ]
|
TileDirectories += [ "constructible" ]
|
||||||
generateEcosystem("lacustre", "tryker")
|
generateEcosystem("lacustre", "tryker")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
@ -1,100 +1,100 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 0_setup.py
|
# \file 0_setup.py
|
||||||
# \brief Run all setup processes
|
# \brief Run all setup processes
|
||||||
# \date 2009-02-18 15:28GMT
|
# \date 2009-02-18 15:28GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Run all setup processes
|
# Run all setup processes
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../configuration")
|
sys.path.append("../configuration")
|
||||||
if os.path.isfile("generate_simple_max_exporters.log"):
|
if os.path.isfile("generate_simple_max_exporters.log"):
|
||||||
os.remove("generate_simple_max_exporters.log")
|
os.remove("generate_simple_max_exporters.log")
|
||||||
log = open("generate_simple_max_exporters.log", "w")
|
log = open("generate_simple_max_exporters.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from tools import *
|
from tools import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Generate simple max exporters")
|
printLog(log, "--- Generate simple max exporters")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
def processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
def processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||||
newline = line.replace("%PreGenWarning%", "WARNING : this is a generated file, don't change it !")
|
newline = line.replace("%PreGenWarning%", "WARNING : this is a generated file, don't change it !")
|
||||||
newline = newline.replace("%PreGenDateTimeStamp%", dateTimeStamp)
|
newline = newline.replace("%PreGenDateTimeStamp%", dateTimeStamp)
|
||||||
newline = newline.replace("%PreGenProcessName%", processName)
|
newline = newline.replace("%PreGenProcessName%", processName)
|
||||||
newline = newline.replace("%PreGenFileExtension%", fileExtension)
|
newline = newline.replace("%PreGenFileExtension%", fileExtension)
|
||||||
newline = newline.replace("%PreGenSourceDirectoriesVariable%", sourceDirectoriesVariable)
|
newline = newline.replace("%PreGenSourceDirectoriesVariable%", sourceDirectoriesVariable)
|
||||||
newline = newline.replace("%PreGenExportDirectoryVariable%", exportDirectoryVariable)
|
newline = newline.replace("%PreGenExportDirectoryVariable%", exportDirectoryVariable)
|
||||||
newline = newline.replace("%PreGenInstallDirectoryVariable%", clientDirectoryVariable)
|
newline = newline.replace("%PreGenInstallDirectoryVariable%", clientDirectoryVariable)
|
||||||
return newline
|
return newline
|
||||||
|
|
||||||
def generateSimpleMaxExporterFile(sourceFile, destFile, writeMode, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
def generateSimpleMaxExporterFile(sourceFile, destFile, writeMode, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||||
srcf = open(sourceFile, "r")
|
srcf = open(sourceFile, "r")
|
||||||
dstf = open(destFile, writeMode)
|
dstf = open(destFile, writeMode)
|
||||||
printLog(log, "WRITE " + destFile + " " + writeMode)
|
printLog(log, "WRITE " + destFile + " " + writeMode)
|
||||||
for line in srcf:
|
for line in srcf:
|
||||||
dstf.write(processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp))
|
dstf.write(processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp))
|
||||||
dstf.close()
|
dstf.close()
|
||||||
srcf.close()
|
srcf.close()
|
||||||
|
|
||||||
def generateSimpleMaxExporter(processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable):
|
def generateSimpleMaxExporter(processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable):
|
||||||
dateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
|
dateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
|
||||||
processDir = ScriptDirectory + "/processes/" + processName
|
processDir = ScriptDirectory + "/processes/" + processName
|
||||||
mkPath(log, processDir)
|
mkPath(log, processDir)
|
||||||
maxscriptDir = processDir + "/maxscript"
|
maxscriptDir = processDir + "/maxscript"
|
||||||
mkPath(log, maxscriptDir)
|
mkPath(log, maxscriptDir)
|
||||||
templateDir = os.getcwd().replace("\\", "/") + "/simple_max_exporter_template"
|
templateDir = os.getcwd().replace("\\", "/") + "/simple_max_exporter_template"
|
||||||
mkPath(log, templateDir)
|
mkPath(log, templateDir)
|
||||||
scriptDir = os.getcwd().replace("\\", "/") + "/max_exporter_scripts"
|
scriptDir = os.getcwd().replace("\\", "/") + "/max_exporter_scripts"
|
||||||
mkPath(log, scriptDir)
|
mkPath(log, scriptDir)
|
||||||
|
|
||||||
if not os.path.isfile(processDir + "/0_setup.py"):
|
if not os.path.isfile(processDir + "/0_setup.py"):
|
||||||
generateSimpleMaxExporterFile(templateDir + "/0_setup.py", processDir + "/0_setup.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
generateSimpleMaxExporterFile(templateDir + "/0_setup.py", processDir + "/0_setup.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||||
|
|
||||||
generateSimpleMaxExporterFile(templateDir + "/1_export_header.py", processDir + "/1_export.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
generateSimpleMaxExporterFile(templateDir + "/1_export_header.py", processDir + "/1_export.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||||
generateSimpleMaxExporterFile(scriptDir + "/" + fileExtension + ".py", processDir + "/1_export.py", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
generateSimpleMaxExporterFile(scriptDir + "/" + fileExtension + ".py", processDir + "/1_export.py", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||||
generateSimpleMaxExporterFile(templateDir + "/1_export_footer.py", processDir + "/1_export.py", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
generateSimpleMaxExporterFile(templateDir + "/1_export_footer.py", processDir + "/1_export.py", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||||
|
|
||||||
if not os.path.isfile(processDir + "/2_build.py"):
|
if not os.path.isfile(processDir + "/2_build.py"):
|
||||||
generateSimpleMaxExporterFile(templateDir + "/2_build.py", processDir + "/2_build.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
generateSimpleMaxExporterFile(templateDir + "/2_build.py", processDir + "/2_build.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||||
if not os.path.isfile(processDir + "/3_install.py"):
|
if not os.path.isfile(processDir + "/3_install.py"):
|
||||||
generateSimpleMaxExporterFile(templateDir + "/3_install.py", processDir + "/3_install.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
generateSimpleMaxExporterFile(templateDir + "/3_install.py", processDir + "/3_install.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||||
|
|
||||||
generateSimpleMaxExporterFile(templateDir + "/export_header.ms", maxscriptDir + "/" + fileExtension + "_export.ms", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
generateSimpleMaxExporterFile(templateDir + "/export_header.ms", maxscriptDir + "/" + fileExtension + "_export.ms", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||||
generateSimpleMaxExporterFile(scriptDir + "/" + fileExtension + ".ms", maxscriptDir + "/" + fileExtension + "_export.ms", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
generateSimpleMaxExporterFile(scriptDir + "/" + fileExtension + ".ms", maxscriptDir + "/" + fileExtension + "_export.ms", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||||
generateSimpleMaxExporterFile(templateDir + "/export_footer.ms", maxscriptDir + "/" + fileExtension + "_export.ms", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
generateSimpleMaxExporterFile(templateDir + "/export_footer.ms", maxscriptDir + "/" + fileExtension + "_export.ms", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
generateSimpleMaxExporter("skel", "skel", "SkelSourceDirectories", "SkelExportDirectory", "SkelInstallDirectory")
|
generateSimpleMaxExporter("skel", "skel", "SkelSourceDirectories", "SkelExportDirectory", "SkelInstallDirectory")
|
||||||
|
|
||||||
generateSimpleMaxExporter("swt", "swt", "SwtSourceDirectories", "SwtExportDirectory", "SwtInstallDirectory")
|
generateSimpleMaxExporter("swt", "swt", "SwtSourceDirectories", "SwtExportDirectory", "SwtInstallDirectory")
|
||||||
|
|
||||||
generateSimpleMaxExporter("zone", "zone", "ZoneSourceDirectory", "ZoneExportDirectory", "ZoneInstallDirectory")
|
generateSimpleMaxExporter("zone", "zone", "ZoneSourceDirectory", "ZoneExportDirectory", "ZoneInstallDirectory")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
@ -1,120 +1,120 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 0_setup.py
|
# \file 0_setup.py
|
||||||
# \brief Run all setup processes
|
# \brief Run all setup processes
|
||||||
# \date 2009-02-18 15:28GMT
|
# \date 2009-02-18 15:28GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Run all setup processes
|
# Run all setup processes
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../configuration")
|
sys.path.append("../configuration")
|
||||||
if os.path.isfile("generate_tagged_max_exporters.log"):
|
if os.path.isfile("generate_tagged_max_exporters.log"):
|
||||||
os.remove("generate_tagged_max_exporters.log")
|
os.remove("generate_tagged_max_exporters.log")
|
||||||
log = open("generate_tagged_max_exporters.log", "w")
|
log = open("generate_tagged_max_exporters.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from tools import *
|
from tools import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Generate tagged max exporters")
|
printLog(log, "--- Generate tagged max exporters")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
templateDir = os.getcwd().replace("\\", "/") + "/tagged_max_exporter_template"
|
templateDir = os.getcwd().replace("\\", "/") + "/tagged_max_exporter_template"
|
||||||
mkPath(log, templateDir)
|
mkPath(log, templateDir)
|
||||||
scriptDir = os.getcwd().replace("\\", "/") + "/max_exporter_scripts"
|
scriptDir = os.getcwd().replace("\\", "/") + "/max_exporter_scripts"
|
||||||
mkPath(log, scriptDir)
|
mkPath(log, scriptDir)
|
||||||
|
|
||||||
def processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
def processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||||
newline = line.replace("%PreGenWarning%", "WARNING : this is a generated file, don't change it !")
|
newline = line.replace("%PreGenWarning%", "WARNING : this is a generated file, don't change it !")
|
||||||
newline = newline.replace("%PreGenDateTimeStamp%", dateTimeStamp)
|
newline = newline.replace("%PreGenDateTimeStamp%", dateTimeStamp)
|
||||||
newline = newline.replace("%PreGenProcessName%", processName)
|
newline = newline.replace("%PreGenProcessName%", processName)
|
||||||
newline = newline.replace("%PreGenFileExtension%", fileExtension)
|
newline = newline.replace("%PreGenFileExtension%", fileExtension)
|
||||||
newline = newline.replace("%PreGenSourceDirectoriesVariable%", sourceDirectoriesVariable)
|
newline = newline.replace("%PreGenSourceDirectoriesVariable%", sourceDirectoriesVariable)
|
||||||
newline = newline.replace("%PreGenExportDirectoryVariable%", exportDirectoryVariable)
|
newline = newline.replace("%PreGenExportDirectoryVariable%", exportDirectoryVariable)
|
||||||
newline = newline.replace("%PreGenTagExportDirectoryVariable%", tagExportDirectoryVariable)
|
newline = newline.replace("%PreGenTagExportDirectoryVariable%", tagExportDirectoryVariable)
|
||||||
newline = newline.replace("%PreGenInstallDirectoryVariable%", clientDirectoryVariable)
|
newline = newline.replace("%PreGenInstallDirectoryVariable%", clientDirectoryVariable)
|
||||||
return newline
|
return newline
|
||||||
|
|
||||||
def generateTaggedMaxExporterFile(sourceFile, destFile, writeMode, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
def generateTaggedMaxExporterFile(sourceFile, destFile, writeMode, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||||
srcf = open(sourceFile, "r")
|
srcf = open(sourceFile, "r")
|
||||||
dstf = open(destFile, writeMode)
|
dstf = open(destFile, writeMode)
|
||||||
printLog(log, "WRITE " + destFile + " " + writeMode)
|
printLog(log, "WRITE " + destFile + " " + writeMode)
|
||||||
for line in srcf:
|
for line in srcf:
|
||||||
dstf.write(processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp))
|
dstf.write(processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp))
|
||||||
dstf.close()
|
dstf.close()
|
||||||
srcf.close()
|
srcf.close()
|
||||||
|
|
||||||
def generateTaggedMaxScriptFile(processDir, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
def generateTaggedMaxScriptFile(processDir, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||||
maxscriptDir = processDir + "/maxscript"
|
maxscriptDir = processDir + "/maxscript"
|
||||||
mkPath(log, maxscriptDir)
|
mkPath(log, maxscriptDir)
|
||||||
generateTaggedMaxExporterFile(templateDir + "/export_header.ms", maxscriptDir + "/" + fileExtension + "_export.ms", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
generateTaggedMaxExporterFile(templateDir + "/export_header.ms", maxscriptDir + "/" + fileExtension + "_export.ms", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||||
generateTaggedMaxExporterFile(scriptDir + "/" + fileExtension + ".ms", maxscriptDir + "/" + fileExtension + "_export.ms", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
generateTaggedMaxExporterFile(scriptDir + "/" + fileExtension + ".ms", maxscriptDir + "/" + fileExtension + "_export.ms", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||||
generateTaggedMaxExporterFile(templateDir + "/export_footer.ms", maxscriptDir + "/" + fileExtension + "_export.ms", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
generateTaggedMaxExporterFile(templateDir + "/export_footer.ms", maxscriptDir + "/" + fileExtension + "_export.ms", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||||
|
|
||||||
def generateTaggedMaxScript(processName, fileExtension):
|
def generateTaggedMaxScript(processName, fileExtension):
|
||||||
dateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
|
dateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
|
||||||
processDir = ScriptDirectory + "/processes/" + processName
|
processDir = ScriptDirectory + "/processes/" + processName
|
||||||
mkPath(log, processDir)
|
mkPath(log, processDir)
|
||||||
|
|
||||||
generateTaggedMaxScriptFile(processDir, processName, fileExtension, "_invalid", "_invalid", "_invalid", "_invalid", dateTimeStamp)
|
generateTaggedMaxScriptFile(processDir, processName, fileExtension, "_invalid", "_invalid", "_invalid", "_invalid", dateTimeStamp)
|
||||||
|
|
||||||
def generateTaggedMaxExporter(processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable):
|
def generateTaggedMaxExporter(processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable):
|
||||||
dateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
|
dateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
|
||||||
processDir = ScriptDirectory + "/processes/" + processName
|
processDir = ScriptDirectory + "/processes/" + processName
|
||||||
mkPath(log, processDir)
|
mkPath(log, processDir)
|
||||||
|
|
||||||
if not os.path.isfile(processDir + "/0_setup.py"):
|
if not os.path.isfile(processDir + "/0_setup.py"):
|
||||||
generateTaggedMaxExporterFile(templateDir + "/0_setup.py", processDir + "/0_setup.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
generateTaggedMaxExporterFile(templateDir + "/0_setup.py", processDir + "/0_setup.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||||
|
|
||||||
generateTaggedMaxExporterFile(templateDir + "/1_export_header.py", processDir + "/1_export.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
generateTaggedMaxExporterFile(templateDir + "/1_export_header.py", processDir + "/1_export.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||||
generateTaggedMaxExporterFile(scriptDir + "/" + fileExtension + ".py", processDir + "/1_export.py", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
generateTaggedMaxExporterFile(scriptDir + "/" + fileExtension + ".py", processDir + "/1_export.py", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||||
generateTaggedMaxExporterFile(templateDir + "/1_export_footer.py", processDir + "/1_export.py", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
generateTaggedMaxExporterFile(templateDir + "/1_export_footer.py", processDir + "/1_export.py", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||||
|
|
||||||
if not os.path.isfile(processDir + "/2_build.py"):
|
if not os.path.isfile(processDir + "/2_build.py"):
|
||||||
generateTaggedMaxExporterFile(templateDir + "/2_build.py", processDir + "/2_build.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
generateTaggedMaxExporterFile(templateDir + "/2_build.py", processDir + "/2_build.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||||
if not os.path.isfile(processDir + "/3_install.py"):
|
if not os.path.isfile(processDir + "/3_install.py"):
|
||||||
generateTaggedMaxExporterFile(templateDir + "/3_install.py", processDir + "/3_install.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
generateTaggedMaxExporterFile(templateDir + "/3_install.py", processDir + "/3_install.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||||
|
|
||||||
generateTaggedMaxScriptFile(processDir, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
generateTaggedMaxScriptFile(processDir, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
generateTaggedMaxExporter("pacs_prim", "pacs_prim", "PacsPrimSourceDirectories", "PacsPrimExportDirectory", "PacsPrimTagExportDirectory", "PacsPrimInstallDirectory")
|
generateTaggedMaxExporter("pacs_prim", "pacs_prim", "PacsPrimSourceDirectories", "PacsPrimExportDirectory", "PacsPrimTagExportDirectory", "PacsPrimInstallDirectory")
|
||||||
|
|
||||||
generateTaggedMaxExporter("clodbank", "clod", "ClodSourceDirectories", "ClodExportDirectory", "ClodTagExportDirectory", "ClodInstallDirectory")
|
generateTaggedMaxExporter("clodbank", "clod", "ClodSourceDirectories", "ClodExportDirectory", "ClodTagExportDirectory", "ClodInstallDirectory")
|
||||||
|
|
||||||
generateTaggedMaxScript("ig", "ig")
|
generateTaggedMaxScript("ig", "ig")
|
||||||
|
|
||||||
generateTaggedMaxExporter("rbank", "cmb", "RBankCmbSourceDirectories", "RBankCmbExportDirectory", "RBankCmbTagExportDirectory", "PacsInstallDirectory")
|
generateTaggedMaxExporter("rbank", "cmb", "RBankCmbSourceDirectories", "RBankCmbExportDirectory", "RBankCmbTagExportDirectory", "PacsInstallDirectory")
|
||||||
|
|
||||||
generateTaggedMaxExporter("veget", "veget", "VegetSourceDirectories", "VegetExportDirectory", "VegetTagExportDirectory", "VegetInstallDirectory")
|
generateTaggedMaxExporter("veget", "veget", "VegetSourceDirectories", "VegetExportDirectory", "VegetTagExportDirectory", "VegetInstallDirectory")
|
||||||
|
|
||||||
generateTaggedMaxScript("shape", "shape")
|
generateTaggedMaxScript("shape", "shape")
|
||||||
|
|
||||||
generateTaggedMaxExporter("anim", "anim", "AnimSourceDirectories", "AnimExportDirectory", "AnimTagExportDirectory", "AnimInstallDirectory")
|
generateTaggedMaxExporter("anim", "anim", "AnimSourceDirectories", "AnimExportDirectory", "AnimTagExportDirectory", "AnimInstallDirectory")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
|
|
||||||
# Remove bad file from previous script version
|
# Remove bad file from previous script version
|
||||||
listPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable% + "/landscape_col_prim_pacs_list.txt"
|
listPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable% + "/landscape_col_prim_pacs_list.txt"
|
||||||
if os.path.isfile(listPath):
|
if os.path.isfile(listPath):
|
||||||
os.remove(listPath)
|
os.remove(listPath)
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
|
|
||||||
printLog(log, ">>> Export skel directly <<<")
|
printLog(log, ">>> Export skel directly <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + SkelExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + SkelExportDirectory)
|
||||||
for dir in SkelSourceDirectories:
|
for dir in SkelSourceDirectories:
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
copyFilesExtNoSubdirIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + SkelExportDirectory, ".skel")
|
copyFilesExtNoSubdirIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + SkelExportDirectory, ".skel")
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
|
|
||||||
printLog(log, ">>> Try to copy ligo zone if any <<<")
|
printLog(log, ">>> Try to copy ligo zone if any <<<")
|
||||||
printLog(log, "********************************")
|
printLog(log, "********************************")
|
||||||
printLog(log, "******** TODO ********")
|
printLog(log, "******** TODO ********")
|
||||||
printLog(log, "********************************")
|
printLog(log, "********************************")
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
|
@ -1,65 +1,65 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 0_setup.py
|
# \file 0_setup.py
|
||||||
# \brief setup %PreGenProcessName%
|
# \brief setup %PreGenProcessName%
|
||||||
# \date %PreGenDateTimeStamp%
|
# \date %PreGenDateTimeStamp%
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Setup %PreGenProcessName%
|
# Setup %PreGenProcessName%
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Setup %PreGenProcessName%")
|
printLog(log, "--- Setup %PreGenProcessName%")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# Setup source directories
|
# Setup source directories
|
||||||
printLog(log, ">>> Setup source directories <<<")
|
printLog(log, ">>> Setup source directories <<<")
|
||||||
for dir in %PreGenSourceDirectoriesVariable%:
|
for dir in %PreGenSourceDirectoriesVariable%:
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
|
||||||
# Setup export directories
|
# Setup export directories
|
||||||
printLog(log, ">>> Setup export directories <<<")
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%)
|
mkPath(log, ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%)
|
||||||
|
|
||||||
# Setup build directories
|
# Setup build directories
|
||||||
printLog(log, ">>> Setup build directories <<<")
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, InstallDirectory + "/" + %PreGenInstallDirectoryVariable%)
|
mkPath(log, InstallDirectory + "/" + %PreGenInstallDirectoryVariable%)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,92 +1,92 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# #################################################################
|
# #################################################################
|
||||||
# ## %PreGenWarning%
|
# ## %PreGenWarning%
|
||||||
# #################################################################
|
# #################################################################
|
||||||
#
|
#
|
||||||
# \file 1_export.py
|
# \file 1_export.py
|
||||||
# \brief Export %PreGenProcessName%
|
# \brief Export %PreGenProcessName%
|
||||||
# \date %PreGenDateTimeStamp%
|
# \date %PreGenDateTimeStamp%
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Export %PreGenProcessName%
|
# Export %PreGenProcessName%
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Export %PreGenProcessName%")
|
printLog(log, "--- Export %PreGenProcessName%")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# Find tools
|
# Find tools
|
||||||
# ...
|
# ...
|
||||||
|
|
||||||
# Export %PreGenProcessName% 3dsmax
|
# Export %PreGenProcessName% 3dsmax
|
||||||
if MaxAvailable:
|
if MaxAvailable:
|
||||||
# Find tools
|
# Find tools
|
||||||
Max = findMax(log, MaxDirectory, MaxExecutable)
|
Max = findMax(log, MaxDirectory, MaxExecutable)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
printLog(log, ">>> Export %PreGenProcessName% 3dsmax <<<")
|
printLog(log, ">>> Export %PreGenProcessName% 3dsmax <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%)
|
mkPath(log, ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%)
|
||||||
for dir in %PreGenSourceDirectoriesVariable%:
|
for dir in %PreGenSourceDirectoriesVariable%:
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
if (needUpdateDirByTagLog(log, DatabaseDirectory + "/" + dir, ".max", ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%, ".%PreGenFileExtension%")):
|
if (needUpdateDirByTagLog(log, DatabaseDirectory + "/" + dir, ".max", ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%, ".%PreGenFileExtension%")):
|
||||||
scriptSrc = "maxscript/%PreGenFileExtension%_export.ms"
|
scriptSrc = "maxscript/%PreGenFileExtension%_export.ms"
|
||||||
scriptDst = MaxUserDirectory + "/scripts/%PreGenFileExtension%_export.ms"
|
scriptDst = MaxUserDirectory + "/scripts/%PreGenFileExtension%_export.ms"
|
||||||
outputLogfile = ScriptDirectory + "/processes/%PreGenProcessName%/log.log"
|
outputLogfile = ScriptDirectory + "/processes/%PreGenProcessName%/log.log"
|
||||||
outputDirectory = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
|
outputDirectory = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
|
||||||
maxSourceDir = DatabaseDirectory + "/" + dir
|
maxSourceDir = DatabaseDirectory + "/" + dir
|
||||||
tagList = findFiles(log, outputDirectory, "", ".%PreGenFileExtension%")
|
tagList = findFiles(log, outputDirectory, "", ".%PreGenFileExtension%")
|
||||||
tagLen = len(tagList)
|
tagLen = len(tagList)
|
||||||
if os.path.isfile(scriptDst):
|
if os.path.isfile(scriptDst):
|
||||||
os.remove(scriptDst)
|
os.remove(scriptDst)
|
||||||
tagDiff = 1
|
tagDiff = 1
|
||||||
sSrc = open(scriptSrc, "r")
|
sSrc = open(scriptSrc, "r")
|
||||||
sDst = open(scriptDst, "w")
|
sDst = open(scriptDst, "w")
|
||||||
for line in sSrc:
|
for line in sSrc:
|
||||||
newline = line.replace("%OutputLogfile%", outputLogfile)
|
newline = line.replace("%OutputLogfile%", outputLogfile)
|
||||||
newline = newline.replace("%MaxSourceDirectory%", maxSourceDir)
|
newline = newline.replace("%MaxSourceDirectory%", maxSourceDir)
|
||||||
newline = newline.replace("%OutputDirectory%", outputDirectory)
|
newline = newline.replace("%OutputDirectory%", outputDirectory)
|
||||||
sDst.write(newline)
|
sDst.write(newline)
|
||||||
sSrc.close()
|
sSrc.close()
|
||||||
sDst.close()
|
sDst.close()
|
||||||
while tagDiff > 0:
|
while tagDiff > 0:
|
||||||
printLog(log, "MAXSCRIPT " + scriptDst)
|
printLog(log, "MAXSCRIPT " + scriptDst)
|
||||||
subprocess.call([ Max, "-U", "MAXScript", "%PreGenFileExtension%_export.ms", "-q", "-mi", "-mip" ])
|
subprocess.call([ Max, "-U", "MAXScript", "%PreGenFileExtension%_export.ms", "-q", "-mi", "-mip" ])
|
||||||
tagList = findFiles(log, outputDirectory, "", ".%PreGenFileExtension%")
|
tagList = findFiles(log, outputDirectory, "", ".%PreGenFileExtension%")
|
||||||
newTagLen = len(tagList)
|
newTagLen = len(tagList)
|
||||||
tagDiff = newTagLen - tagLen
|
tagDiff = newTagLen - tagLen
|
||||||
tagLen = newTagLen
|
tagLen = newTagLen
|
||||||
printLog(log, "Exported " + str(tagDiff) + " .%PreGenFileExtension% files!")
|
printLog(log, "Exported " + str(tagDiff) + " .%PreGenFileExtension% files!")
|
||||||
os.remove(scriptDst)
|
os.remove(scriptDst)
|
||||||
|
|
||||||
|
@ -1,49 +1,49 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 2_build.py
|
# \file 2_build.py
|
||||||
# \brief Build %PreGenProcessName%
|
# \brief Build %PreGenProcessName%
|
||||||
# \date %PreGenDateTimeStamp%
|
# \date %PreGenDateTimeStamp%
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Build %PreGenProcessName%
|
# Build %PreGenProcessName%
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Build %PreGenProcessName%")
|
printLog(log, "--- Build %PreGenProcessName%")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,57 +1,57 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 3_install.py
|
# \file 3_install.py
|
||||||
# \brief Install %PreGenProcessName%
|
# \brief Install %PreGenProcessName%
|
||||||
# \date %PreGenDateTimeStamp%
|
# \date %PreGenDateTimeStamp%
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Install %PreGenProcessName%
|
# Install %PreGenProcessName%
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Install %PreGenProcessName%")
|
printLog(log, "--- Install %PreGenProcessName%")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
printLog(log, ">>> Install %PreGenProcessName% <<<")
|
printLog(log, ">>> Install %PreGenProcessName% <<<")
|
||||||
exportPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
|
exportPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
|
||||||
mkPath(log, exportPath)
|
mkPath(log, exportPath)
|
||||||
installPath = InstallDirectory + "/" + %PreGenInstallDirectoryVariable%
|
installPath = InstallDirectory + "/" + %PreGenInstallDirectoryVariable%
|
||||||
mkPath(log, installPath)
|
mkPath(log, installPath)
|
||||||
copyFilesExtNoSubdirIfNeeded(log, exportPath, installPath, ".%PreGenFileExtension%")
|
copyFilesExtNoSubdirIfNeeded(log, exportPath, installPath, ".%PreGenFileExtension%")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,66 +1,66 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 0_setup.py
|
# \file 0_setup.py
|
||||||
# \brief setup %PreGenProcessName%
|
# \brief setup %PreGenProcessName%
|
||||||
# \date %PreGenDateTimeStamp%
|
# \date %PreGenDateTimeStamp%
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Setup %PreGenProcessName%
|
# Setup %PreGenProcessName%
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Setup %PreGenProcessName%")
|
printLog(log, "--- Setup %PreGenProcessName%")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# Setup source directories
|
# Setup source directories
|
||||||
printLog(log, ">>> Setup source directories <<<")
|
printLog(log, ">>> Setup source directories <<<")
|
||||||
for dir in %PreGenSourceDirectoriesVariable%:
|
for dir in %PreGenSourceDirectoriesVariable%:
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
|
||||||
# Setup export directories
|
# Setup export directories
|
||||||
printLog(log, ">>> Setup export directories <<<")
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%)
|
mkPath(log, ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%)
|
||||||
mkPath(log, ExportBuildDirectory + "/" + %PreGenTagExportDirectoryVariable%)
|
mkPath(log, ExportBuildDirectory + "/" + %PreGenTagExportDirectoryVariable%)
|
||||||
|
|
||||||
# Setup build directories
|
# Setup build directories
|
||||||
printLog(log, ">>> Setup build directories <<<")
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, InstallDirectory + "/" + %PreGenInstallDirectoryVariable%)
|
mkPath(log, InstallDirectory + "/" + %PreGenInstallDirectoryVariable%)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
|
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
shutil.move("temp_log.log", "log.log")
|
shutil.move("temp_log.log", "log.log")
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,130 +1,130 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# #################################################################
|
# #################################################################
|
||||||
# ## %PreGenWarning%
|
# ## %PreGenWarning%
|
||||||
# #################################################################
|
# #################################################################
|
||||||
#
|
#
|
||||||
# \file 1_export.py
|
# \file 1_export.py
|
||||||
# \brief Export %PreGenProcessName%
|
# \brief Export %PreGenProcessName%
|
||||||
# \date %PreGenDateTimeStamp%
|
# \date %PreGenDateTimeStamp%
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Export %PreGenProcessName%
|
# Export %PreGenProcessName%
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
if os.path.isfile("temp_log.log"):
|
if os.path.isfile("temp_log.log"):
|
||||||
os.remove("temp_log.log")
|
os.remove("temp_log.log")
|
||||||
log = open("temp_log.log", "w")
|
log = open("temp_log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Export %PreGenProcessName%")
|
printLog(log, "--- Export %PreGenProcessName%")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
|
|
||||||
# Find tools
|
# Find tools
|
||||||
# ...
|
# ...
|
||||||
|
|
||||||
# Export %PreGenProcessName% 3dsmax
|
# Export %PreGenProcessName% 3dsmax
|
||||||
if MaxAvailable:
|
if MaxAvailable:
|
||||||
# Find tools
|
# Find tools
|
||||||
Max = findMax(log, MaxDirectory, MaxExecutable)
|
Max = findMax(log, MaxDirectory, MaxExecutable)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
printLog(log, ">>> Export %PreGenProcessName% 3dsmax <<<")
|
printLog(log, ">>> Export %PreGenProcessName% 3dsmax <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%)
|
mkPath(log, ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%)
|
||||||
mkPath(log, ExportBuildDirectory + "/" + %PreGenTagExportDirectoryVariable%)
|
mkPath(log, ExportBuildDirectory + "/" + %PreGenTagExportDirectoryVariable%)
|
||||||
for dir in %PreGenSourceDirectoriesVariable%:
|
for dir in %PreGenSourceDirectoriesVariable%:
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
if (needUpdateDirByTagLog(log, DatabaseDirectory + "/" + dir, ".max", ExportBuildDirectory + "/" + %PreGenTagExportDirectoryVariable%, ".max.tag")):
|
if (needUpdateDirByTagLog(log, DatabaseDirectory + "/" + dir, ".max", ExportBuildDirectory + "/" + %PreGenTagExportDirectoryVariable%, ".max.tag")):
|
||||||
scriptSrc = "maxscript/%PreGenFileExtension%_export.ms"
|
scriptSrc = "maxscript/%PreGenFileExtension%_export.ms"
|
||||||
scriptDst = MaxUserDirectory + "/scripts/%PreGenFileExtension%_export.ms"
|
scriptDst = MaxUserDirectory + "/scripts/%PreGenFileExtension%_export.ms"
|
||||||
outputLogfile = ScriptDirectory + "/processes/%PreGenProcessName%/log.log"
|
outputLogfile = ScriptDirectory + "/processes/%PreGenProcessName%/log.log"
|
||||||
outputDirectory = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
|
outputDirectory = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
|
||||||
tagDirectory = ExportBuildDirectory + "/" + %PreGenTagExportDirectoryVariable%
|
tagDirectory = ExportBuildDirectory + "/" + %PreGenTagExportDirectoryVariable%
|
||||||
maxSourceDir = DatabaseDirectory + "/" + dir
|
maxSourceDir = DatabaseDirectory + "/" + dir
|
||||||
maxRunningTagFile = tagDirectory + "/max_running.tag"
|
maxRunningTagFile = tagDirectory + "/max_running.tag"
|
||||||
tagList = findFiles(log, tagDirectory, "", ".max.tag")
|
tagList = findFiles(log, tagDirectory, "", ".max.tag")
|
||||||
tagLen = len(tagList)
|
tagLen = len(tagList)
|
||||||
if os.path.isfile(scriptDst):
|
if os.path.isfile(scriptDst):
|
||||||
os.remove(scriptDst)
|
os.remove(scriptDst)
|
||||||
tagDiff = 1
|
tagDiff = 1
|
||||||
sSrc = open(scriptSrc, "r")
|
sSrc = open(scriptSrc, "r")
|
||||||
sDst = open(scriptDst, "w")
|
sDst = open(scriptDst, "w")
|
||||||
for line in sSrc:
|
for line in sSrc:
|
||||||
newline = line.replace("%OutputLogfile%", outputLogfile)
|
newline = line.replace("%OutputLogfile%", outputLogfile)
|
||||||
newline = newline.replace("%MaxSourceDirectory%", maxSourceDir)
|
newline = newline.replace("%MaxSourceDirectory%", maxSourceDir)
|
||||||
newline = newline.replace("%OutputDirectory%", outputDirectory)
|
newline = newline.replace("%OutputDirectory%", outputDirectory)
|
||||||
newline = newline.replace("%TagDirectory%", tagDirectory)
|
newline = newline.replace("%TagDirectory%", tagDirectory)
|
||||||
sDst.write(newline)
|
sDst.write(newline)
|
||||||
sSrc.close()
|
sSrc.close()
|
||||||
sDst.close()
|
sDst.close()
|
||||||
zeroRetryLimit = 3
|
zeroRetryLimit = 3
|
||||||
while tagDiff > 0:
|
while tagDiff > 0:
|
||||||
mrt = open(maxRunningTagFile, "w")
|
mrt = open(maxRunningTagFile, "w")
|
||||||
mrt.write("moe-moe-kyun")
|
mrt.write("moe-moe-kyun")
|
||||||
mrt.close()
|
mrt.close()
|
||||||
printLog(log, "MAXSCRIPT " + scriptDst)
|
printLog(log, "MAXSCRIPT " + scriptDst)
|
||||||
subprocess.call([ Max, "-U", "MAXScript", "%PreGenFileExtension%_export.ms", "-q", "-mi", "-mip" ])
|
subprocess.call([ Max, "-U", "MAXScript", "%PreGenFileExtension%_export.ms", "-q", "-mi", "-mip" ])
|
||||||
if os.path.exists(outputLogfile):
|
if os.path.exists(outputLogfile):
|
||||||
try:
|
try:
|
||||||
lSrc = open(outputLogfile, "r")
|
lSrc = open(outputLogfile, "r")
|
||||||
for line in lSrc:
|
for line in lSrc:
|
||||||
lineStrip = line.strip()
|
lineStrip = line.strip()
|
||||||
if (len(lineStrip) > 0):
|
if (len(lineStrip) > 0):
|
||||||
printLog(log, lineStrip)
|
printLog(log, lineStrip)
|
||||||
lSrc.close()
|
lSrc.close()
|
||||||
os.remove(outputLogfile)
|
os.remove(outputLogfile)
|
||||||
except Exception:
|
except Exception:
|
||||||
printLog(log, "ERROR Failed to read 3dsmax log")
|
printLog(log, "ERROR Failed to read 3dsmax log")
|
||||||
else:
|
else:
|
||||||
printLog(log, "WARNING No 3dsmax log")
|
printLog(log, "WARNING No 3dsmax log")
|
||||||
tagList = findFiles(log, tagDirectory, "", ".max.tag")
|
tagList = findFiles(log, tagDirectory, "", ".max.tag")
|
||||||
newTagLen = len(tagList)
|
newTagLen = len(tagList)
|
||||||
tagDiff = newTagLen - tagLen
|
tagDiff = newTagLen - tagLen
|
||||||
tagLen = newTagLen
|
tagLen = newTagLen
|
||||||
addTagDiff = 0
|
addTagDiff = 0
|
||||||
if os.path.exists(maxRunningTagFile):
|
if os.path.exists(maxRunningTagFile):
|
||||||
printLog(log, "FAIL 3ds Max crashed and/or file export failed!")
|
printLog(log, "FAIL 3ds Max crashed and/or file export failed!")
|
||||||
if tagDiff == 0:
|
if tagDiff == 0:
|
||||||
if zeroRetryLimit > 0:
|
if zeroRetryLimit > 0:
|
||||||
zeroRetryLimit = zeroRetryLimit - 1
|
zeroRetryLimit = zeroRetryLimit - 1
|
||||||
addTagDiff = 1
|
addTagDiff = 1
|
||||||
else:
|
else:
|
||||||
printLog(log, "FAIL Retry limit reached!")
|
printLog(log, "FAIL Retry limit reached!")
|
||||||
else:
|
else:
|
||||||
addTagDiff = 1
|
addTagDiff = 1
|
||||||
os.remove(maxRunningTagFile)
|
os.remove(maxRunningTagFile)
|
||||||
printLog(log, "Exported " + str(tagDiff) + " .max files!")
|
printLog(log, "Exported " + str(tagDiff) + " .max files!")
|
||||||
tagDiff += addTagDiff
|
tagDiff += addTagDiff
|
||||||
os.remove(scriptDst)
|
os.remove(scriptDst)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
|
@ -1,49 +1,49 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 2_build.py
|
# \file 2_build.py
|
||||||
# \brief Build %PreGenProcessName%
|
# \brief Build %PreGenProcessName%
|
||||||
# \date %PreGenDateTimeStamp%
|
# \date %PreGenDateTimeStamp%
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Build %PreGenProcessName%
|
# Build %PreGenProcessName%
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Build %PreGenProcessName%")
|
printLog(log, "--- Build %PreGenProcessName%")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,57 +1,57 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 3_install.py
|
# \file 3_install.py
|
||||||
# \brief Install %PreGenProcessName%
|
# \brief Install %PreGenProcessName%
|
||||||
# \date %PreGenDateTimeStamp%
|
# \date %PreGenDateTimeStamp%
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Install %PreGenProcessName%
|
# Install %PreGenProcessName%
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Install %PreGenProcessName%")
|
printLog(log, "--- Install %PreGenProcessName%")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
printLog(log, ">>> Install %PreGenProcessName% <<<")
|
printLog(log, ">>> Install %PreGenProcessName% <<<")
|
||||||
exportPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
|
exportPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
|
||||||
mkPath(log, exportPath)
|
mkPath(log, exportPath)
|
||||||
installPath = InstallDirectory + "/" + %PreGenInstallDirectoryVariable%
|
installPath = InstallDirectory + "/" + %PreGenInstallDirectoryVariable%
|
||||||
mkPath(log, installPath)
|
mkPath(log, installPath)
|
||||||
copyFilesNoTreeIfNeeded(log, exportPath, installPath)
|
copyFilesNoTreeIfNeeded(log, exportPath, installPath)
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,89 +1,89 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 0_setup.py
|
# \file 0_setup.py
|
||||||
# \brief Run all setup processes
|
# \brief Run all setup processes
|
||||||
# \date 2009-02-18 15:28GMT
|
# \date 2009-02-18 15:28GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Run all setup processes
|
# Run all setup processes
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
||||||
sys.path.append("../configuration")
|
sys.path.append("../configuration")
|
||||||
|
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
||||||
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
#printLog(log, "")
|
#printLog(log, "")
|
||||||
#printLog(log, "-------")
|
#printLog(log, "-------")
|
||||||
#printLog(log, "--- Setup project")
|
#printLog(log, "--- Setup project")
|
||||||
#printLog(log, "-------")
|
#printLog(log, "-------")
|
||||||
#printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
#printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
#printLog(log, "")
|
#printLog(log, "")
|
||||||
|
|
||||||
#printLog(log, "")
|
#printLog(log, "")
|
||||||
#printLog(log, "-------")
|
#printLog(log, "-------")
|
||||||
#printLog(log, "--- Setup client directories")
|
#printLog(log, "--- Setup client directories")
|
||||||
#printLog(log, "-------")
|
#printLog(log, "-------")
|
||||||
#printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
#printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
#printLog(log, "")
|
#printLog(log, "")
|
||||||
#for dir in ClientSetupDirectories:
|
#for dir in ClientSetupDirectories:
|
||||||
# mkPath(log, InstallDirectory + "/" + dir)
|
# mkPath(log, InstallDirectory + "/" + dir)
|
||||||
#printLog(log, "")
|
#printLog(log, "")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Run the setup processes")
|
printLog(log, "--- Run the setup processes")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
# For each process
|
# For each process
|
||||||
for processName in ProcessToComplete:
|
for processName in ProcessToComplete:
|
||||||
if ((args.includeprocess == None or processName in args.includeprocess) and (args.excludeprocess == None or not processName in args.excludeprocess)):
|
if ((args.includeprocess == None or processName in args.includeprocess) and (args.excludeprocess == None or not processName in args.excludeprocess)):
|
||||||
printLog(log, "PROCESS " + processName)
|
printLog(log, "PROCESS " + processName)
|
||||||
os.chdir(processName)
|
os.chdir(processName)
|
||||||
try:
|
try:
|
||||||
subprocess.call([ "python", "0_setup.py" ])
|
subprocess.call([ "python", "0_setup.py" ])
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
printLog(log, "<" + processName + "> " + str(e))
|
printLog(log, "<" + processName + "> " + str(e))
|
||||||
os.chdir("..")
|
os.chdir("..")
|
||||||
try:
|
try:
|
||||||
processLog = open(processName + "/log.log", "r")
|
processLog = open(processName + "/log.log", "r")
|
||||||
processLogData = processLog.read()
|
processLogData = processLog.read()
|
||||||
processLog.close()
|
processLog.close()
|
||||||
log.write(processLogData)
|
log.write(processLogData)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
printLog(log, "<" + processName + "> " + str(e))
|
printLog(log, "<" + processName + "> " + str(e))
|
||||||
# subprocess.call("idle.bat")
|
# subprocess.call("idle.bat")
|
||||||
else:
|
else:
|
||||||
printLog(log, "IGNORE PROCESS " + processName)
|
printLog(log, "IGNORE PROCESS " + processName)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
@ -1,73 +1,73 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 1_export.py
|
# \file 1_export.py
|
||||||
# \brief Run all export processes
|
# \brief Run all export processes
|
||||||
# \date 2009-02-18 09:22GMT
|
# \date 2009-02-18 09:22GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Run all export processes
|
# Run all export processes
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
||||||
sys.path.append("../configuration")
|
sys.path.append("../configuration")
|
||||||
|
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
||||||
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
# Log error
|
# Log error
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Run the export processes")
|
printLog(log, "--- Run the export processes")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
# For each process
|
# For each process
|
||||||
for processName in ProcessToComplete:
|
for processName in ProcessToComplete:
|
||||||
if ((args.includeprocess == None or processName in args.includeprocess) and (args.excludeprocess == None or not processName in args.excludeprocess)):
|
if ((args.includeprocess == None or processName in args.includeprocess) and (args.excludeprocess == None or not processName in args.excludeprocess)):
|
||||||
printLog(log, "PROCESS " + processName)
|
printLog(log, "PROCESS " + processName)
|
||||||
os.chdir(processName)
|
os.chdir(processName)
|
||||||
try:
|
try:
|
||||||
subprocess.call([ "python", "1_export.py" ])
|
subprocess.call([ "python", "1_export.py" ])
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
printLog(log, "<" + processName + "> " + str(e))
|
printLog(log, "<" + processName + "> " + str(e))
|
||||||
os.chdir("..")
|
os.chdir("..")
|
||||||
try:
|
try:
|
||||||
processLog = open(processName + "/log.log", "r")
|
processLog = open(processName + "/log.log", "r")
|
||||||
processLogData = processLog.read()
|
processLogData = processLog.read()
|
||||||
processLog.close()
|
processLog.close()
|
||||||
log.write(processLogData)
|
log.write(processLogData)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
printLog(log, "<" + processName + "> " + str(e))
|
printLog(log, "<" + processName + "> " + str(e))
|
||||||
# subprocess.call("idle.bat")
|
# subprocess.call("idle.bat")
|
||||||
else:
|
else:
|
||||||
printLog(log, "IGNORE PROCESS " + processName)
|
printLog(log, "IGNORE PROCESS " + processName)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
@ -1,73 +1,73 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 2_build.py
|
# \file 2_build.py
|
||||||
# \brief Run all build processes
|
# \brief Run all build processes
|
||||||
# \date 2009-02-18 09:22GMT
|
# \date 2009-02-18 09:22GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Run all build processes
|
# Run all build processes
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
||||||
sys.path.append("../configuration")
|
sys.path.append("../configuration")
|
||||||
|
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
||||||
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
# Log error
|
# Log error
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Run the build processes")
|
printLog(log, "--- Run the build processes")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
# For each process
|
# For each process
|
||||||
for processName in ProcessToComplete:
|
for processName in ProcessToComplete:
|
||||||
if ((args.includeprocess == None or processName in args.includeprocess) and (args.excludeprocess == None or not processName in args.excludeprocess)):
|
if ((args.includeprocess == None or processName in args.includeprocess) and (args.excludeprocess == None or not processName in args.excludeprocess)):
|
||||||
printLog(log, "PROCESS " + processName)
|
printLog(log, "PROCESS " + processName)
|
||||||
os.chdir(processName)
|
os.chdir(processName)
|
||||||
try:
|
try:
|
||||||
subprocess.call([ "python", "2_build.py" ])
|
subprocess.call([ "python", "2_build.py" ])
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
printLog(log, "<" + processName + "> " + str(e))
|
printLog(log, "<" + processName + "> " + str(e))
|
||||||
os.chdir("..")
|
os.chdir("..")
|
||||||
try:
|
try:
|
||||||
processLog = open(processName + "/log.log", "r")
|
processLog = open(processName + "/log.log", "r")
|
||||||
processLogData = processLog.read()
|
processLogData = processLog.read()
|
||||||
processLog.close()
|
processLog.close()
|
||||||
log.write(processLogData)
|
log.write(processLogData)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
printLog(log, "<" + processName + "> " + str(e))
|
printLog(log, "<" + processName + "> " + str(e))
|
||||||
# subprocess.call("idle.bat")
|
# subprocess.call("idle.bat")
|
||||||
else:
|
else:
|
||||||
printLog(log, "IGNORE PROCESS " + processName)
|
printLog(log, "IGNORE PROCESS " + processName)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
@ -1,72 +1,72 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 3_install.py
|
# \file 3_install.py
|
||||||
# \brief Run all install processes
|
# \brief Run all install processes
|
||||||
# \date 2009-02-18 16:19GMT
|
# \date 2009-02-18 16:19GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Run all install processes
|
# Run all install processes
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
|
||||||
sys.path.append("../configuration")
|
sys.path.append("../configuration")
|
||||||
|
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
||||||
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Run the install processes")
|
printLog(log, "--- Run the install processes")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
# For each process
|
# For each process
|
||||||
for processName in ProcessToComplete:
|
for processName in ProcessToComplete:
|
||||||
if ((args.includeprocess == None or processName in args.includeprocess) and (args.excludeprocess == None or not processName in args.excludeprocess)):
|
if ((args.includeprocess == None or processName in args.includeprocess) and (args.excludeprocess == None or not processName in args.excludeprocess)):
|
||||||
printLog(log, "PROCESS " + processName)
|
printLog(log, "PROCESS " + processName)
|
||||||
os.chdir(processName)
|
os.chdir(processName)
|
||||||
try:
|
try:
|
||||||
subprocess.call([ "python", "3_install.py" ])
|
subprocess.call([ "python", "3_install.py" ])
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
printLog(log, "<" + processName + "> " + str(e))
|
printLog(log, "<" + processName + "> " + str(e))
|
||||||
os.chdir("..")
|
os.chdir("..")
|
||||||
try:
|
try:
|
||||||
processLog = open(processName + "/log.log", "r")
|
processLog = open(processName + "/log.log", "r")
|
||||||
processLogData = processLog.read()
|
processLogData = processLog.read()
|
||||||
processLog.close()
|
processLog.close()
|
||||||
log.write(processLogData)
|
log.write(processLogData)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
printLog(log, "<" + processName + "> " + str(e))
|
printLog(log, "<" + processName + "> " + str(e))
|
||||||
# subprocess.call("idle.bat")
|
# subprocess.call("idle.bat")
|
||||||
else:
|
else:
|
||||||
printLog(log, "IGNORE PROCESS " + processName)
|
printLog(log, "IGNORE PROCESS " + processName)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
@ -1,66 +1,66 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 0_setup.py
|
# \file 0_setup.py
|
||||||
# \brief setup dummy
|
# \brief setup dummy
|
||||||
# \date 2010-05-24 13:42GMT
|
# \date 2010-05-24 13:42GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Setup dummy
|
# Setup dummy
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Setup dummy")
|
printLog(log, "--- Setup dummy")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# Setup source directories
|
# Setup source directories
|
||||||
printLog(log, ">>> Setup source directories <<<")
|
printLog(log, ">>> Setup source directories <<<")
|
||||||
#for dir in MapSourceDirectories:
|
#for dir in MapSourceDirectories:
|
||||||
# mkPath(log, DatabaseDirectory + "/" + dir)
|
# mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
|
||||||
# Setup export directories
|
# Setup export directories
|
||||||
printLog(log, ">>> Setup export directories <<<")
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
#mkPath(log, ExportBuildDirectory + "/" + DummyTagExportDirectory)
|
#mkPath(log, ExportBuildDirectory + "/" + DummyTagExportDirectory)
|
||||||
|
|
||||||
# Setup build directories
|
# Setup build directories
|
||||||
printLog(log, ">>> Setup build directories <<<")
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
#mkPath(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory)
|
#mkPath(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
#mkPath(log, InstallDirectory + "/" + DummyInstallDirectory)
|
#mkPath(log, InstallDirectory + "/" + DummyInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,117 +1,117 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 1_export.py
|
# \file 1_export.py
|
||||||
# \brief Export dummy
|
# \brief Export dummy
|
||||||
# \date 2010-05-24 13:42GMT
|
# \date 2010-05-24 13:42GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Export dummy
|
# Export dummy
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Export dummy")
|
printLog(log, "--- Export dummy")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
if MaxAvailable:
|
if MaxAvailable:
|
||||||
# Find tools
|
# Find tools
|
||||||
Max = findMax(log, MaxDirectory, MaxExecutable)
|
Max = findMax(log, MaxDirectory, MaxExecutable)
|
||||||
# ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix)
|
# ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# Export dummy 3dsmax
|
# Export dummy 3dsmax
|
||||||
printLog(log, ">>> Export dummy 3dsmax <<<")
|
printLog(log, ">>> Export dummy 3dsmax <<<")
|
||||||
|
|
||||||
# Build paths
|
# Build paths
|
||||||
#scriptSrc = "maxscript/dummy_export.ms"
|
#scriptSrc = "maxscript/dummy_export.ms"
|
||||||
# scriptDst = MaxDirectory + "/scripts/dummy_export.ms"
|
# scriptDst = MaxDirectory + "/scripts/dummy_export.ms"
|
||||||
#scriptDst = MaxUserDirectory + "/scripts/dummy_export.ms"
|
#scriptDst = MaxUserDirectory + "/scripts/dummy_export.ms"
|
||||||
#logFile = ScriptDirectory + "/processes/dummy/log.log"
|
#logFile = ScriptDirectory + "/processes/dummy/log.log"
|
||||||
#outDirTag = ExportBuildDirectory + "/" + DummyTagExportDirectory
|
#outDirTag = ExportBuildDirectory + "/" + DummyTagExportDirectory
|
||||||
#mkPath(log, outDirTag)
|
#mkPath(log, outDirTag)
|
||||||
#outDirWithoutCoarse = ExportBuildDirectory + "/" + DummyExportDirectory
|
#outDirWithoutCoarse = ExportBuildDirectory + "/" + DummyExportDirectory
|
||||||
#mkPath(log, outDirWithoutCoarse)
|
#mkPath(log, outDirWithoutCoarse)
|
||||||
#outDirWithCoarse = ExportBuildDirectory + "/" + DummyWithCoarseMeshExportDirectory
|
#outDirWithCoarse = ExportBuildDirectory + "/" + DummyWithCoarseMeshExportDirectory
|
||||||
#mkPath(log, outDirWithCoarse)
|
#mkPath(log, outDirWithCoarse)
|
||||||
#outDirLightmap = ExportBuildDirectory + "/" + DummyLightmapNotOptimizedExportDirectory
|
#outDirLightmap = ExportBuildDirectory + "/" + DummyLightmapNotOptimizedExportDirectory
|
||||||
#mkPath(log, outDirLightmap)
|
#mkPath(log, outDirLightmap)
|
||||||
#outDirAnim = ExportBuildDirectory + "/" + DummyAnimExportDirectory
|
#outDirAnim = ExportBuildDirectory + "/" + DummyAnimExportDirectory
|
||||||
#mkPath(log, outDirAnim)
|
#mkPath(log, outDirAnim)
|
||||||
|
|
||||||
#tagList = findFiles(log, outDirTag, "", ".tag")
|
#tagList = findFiles(log, outDirTag, "", ".tag")
|
||||||
#tagLen = len(tagList)
|
#tagLen = len(tagList)
|
||||||
|
|
||||||
# For each directoy
|
# For each directoy
|
||||||
#if os.path.isfile(scriptDst):
|
#if os.path.isfile(scriptDst):
|
||||||
# os.remove(scriptDst)
|
# os.remove(scriptDst)
|
||||||
#for dir in DummySourceDirectories:
|
#for dir in DummySourceDirectories:
|
||||||
# tagDiff = 1
|
# tagDiff = 1
|
||||||
# dummySourceDir = DatabaseDirectory + "/" + dir
|
# dummySourceDir = DatabaseDirectory + "/" + dir
|
||||||
# mkPath(log, dummySourceDir)
|
# mkPath(log, dummySourceDir)
|
||||||
# sSrc = open(scriptSrc, "r")
|
# sSrc = open(scriptSrc, "r")
|
||||||
# sDst = open(scriptDst, "w")
|
# sDst = open(scriptDst, "w")
|
||||||
# for line in sSrc:
|
# for line in sSrc:
|
||||||
# newline = line.replace("output_logfile", logFile)
|
# newline = line.replace("output_logfile", logFile)
|
||||||
# newline = newline.replace("dummy_source_directory", dummySourceDir)
|
# newline = newline.replace("dummy_source_directory", dummySourceDir)
|
||||||
# newline = newline.replace("output_directory_tag", outDirTag)
|
# newline = newline.replace("output_directory_tag", outDirTag)
|
||||||
# newline = newline.replace("output_directory_without_coarse_mesh", outDirWithoutCoarse)
|
# newline = newline.replace("output_directory_without_coarse_mesh", outDirWithoutCoarse)
|
||||||
# newline = newline.replace("output_directory_with_coarse_mesh", outDirWithCoarse)
|
# newline = newline.replace("output_directory_with_coarse_mesh", outDirWithCoarse)
|
||||||
# newline = newline.replace("dummy_export_opt_export_lighting", DummyExportOptExportLighting)
|
# newline = newline.replace("dummy_export_opt_export_lighting", DummyExportOptExportLighting)
|
||||||
# newline = newline.replace("dummy_export_opt_shadow", DummyExportOptShadow)
|
# newline = newline.replace("dummy_export_opt_shadow", DummyExportOptShadow)
|
||||||
# newline = newline.replace("dummy_export_opt_lighting_limit", str(DummyExportOptLightingLimit))
|
# newline = newline.replace("dummy_export_opt_lighting_limit", str(DummyExportOptLightingLimit))
|
||||||
# newline = newline.replace("dummy_export_opt_lumel_size", DummyExportOptLumelSize)
|
# newline = newline.replace("dummy_export_opt_lumel_size", DummyExportOptLumelSize)
|
||||||
# newline = newline.replace("dummy_export_opt_oversampling", str(DummyExportOptOversampling))
|
# newline = newline.replace("dummy_export_opt_oversampling", str(DummyExportOptOversampling))
|
||||||
# newline = newline.replace("dummy_export_opt_lightmap_log", DummyExportOptLightmapLog)
|
# newline = newline.replace("dummy_export_opt_lightmap_log", DummyExportOptLightmapLog)
|
||||||
# newline = newline.replace("dummy_lightmap_path", outDirLightmap)
|
# newline = newline.replace("dummy_lightmap_path", outDirLightmap)
|
||||||
# newline = newline.replace("output_directory_anim", outDirAnim)
|
# newline = newline.replace("output_directory_anim", outDirAnim)
|
||||||
# sDst.write(newline)
|
# sDst.write(newline)
|
||||||
# sSrc.close()
|
# sSrc.close()
|
||||||
# sDst.close()
|
# sDst.close()
|
||||||
# while tagDiff > 0:
|
# while tagDiff > 0:
|
||||||
# printLog(log, "MAXSCRIPT " + scriptDst)
|
# printLog(log, "MAXSCRIPT " + scriptDst)
|
||||||
# subprocess.call([ Max, "-U", "MAXScript", "dummy_export.ms", "-q", "-mi", "-mip" ])
|
# subprocess.call([ Max, "-U", "MAXScript", "dummy_export.ms", "-q", "-mi", "-mip" ])
|
||||||
# tagList = findFiles(log, outDirTag, "", ".tag")
|
# tagList = findFiles(log, outDirTag, "", ".tag")
|
||||||
# newTagLen = len(tagList)
|
# newTagLen = len(tagList)
|
||||||
# tagDiff = newTagLen - tagLen
|
# tagDiff = newTagLen - tagLen
|
||||||
# tagLen = newTagLen
|
# tagLen = newTagLen
|
||||||
# printLog(log, "Exported " + str(tagDiff) + " .max files!")
|
# printLog(log, "Exported " + str(tagDiff) + " .max files!")
|
||||||
# tagDiff += hackBdummyTree() # force rerun also when bdummy tree deleted
|
# tagDiff += hackBdummyTree() # force rerun also when bdummy tree deleted
|
||||||
# os.remove(scriptDst)
|
# os.remove(scriptDst)
|
||||||
|
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,96 +1,96 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 2_build.py
|
# \file 2_build.py
|
||||||
# \brief Build dummy
|
# \brief Build dummy
|
||||||
# \date 2010-05-24 13:42GMT
|
# \date 2010-05-24 13:42GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Build dummy
|
# Build dummy
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Build dummy")
|
printLog(log, "--- Build dummy")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# Find tools
|
# Find tools
|
||||||
ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix)
|
ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix)
|
||||||
BuildShadowSkin = findTool(log, ToolDirectories, BuildShadowSkinTool, ToolSuffix)
|
BuildShadowSkin = findTool(log, ToolDirectories, BuildShadowSkinTool, ToolSuffix)
|
||||||
BuildClodtex = findTool(log, ToolDirectories, BuildClodtexTool, ToolSuffix)
|
BuildClodtex = findTool(log, ToolDirectories, BuildClodtexTool, ToolSuffix)
|
||||||
LightmapOptimizer = findTool(log, ToolDirectories, LightmapOptimizerTool, ToolSuffix)
|
LightmapOptimizer = findTool(log, ToolDirectories, LightmapOptimizerTool, ToolSuffix)
|
||||||
TgaToDds = findTool(log, ToolDirectories, TgaToDdsTool, ToolSuffix)
|
TgaToDds = findTool(log, ToolDirectories, TgaToDdsTool, ToolSuffix)
|
||||||
BuildCoarseMesh = findTool(log, ToolDirectories, BuildCoarseMeshTool, ToolSuffix)
|
BuildCoarseMesh = findTool(log, ToolDirectories, BuildCoarseMeshTool, ToolSuffix)
|
||||||
|
|
||||||
#if 1: # todo: CoarseMeshTextureNames length > 0 ...
|
#if 1: # todo: CoarseMeshTextureNames length > 0 ...
|
||||||
# printLog(log, ">>> Build coarse meshes <<<")
|
# printLog(log, ">>> Build coarse meshes <<<")
|
||||||
# dummyWithCoarseMesh = ExportBuildDirectory + "/" + DummyWithCoarseMeshExportDirectory
|
# dummyWithCoarseMesh = ExportBuildDirectory + "/" + DummyWithCoarseMeshExportDirectory
|
||||||
# mkPath(log, dummyWithCoarseMesh)
|
# mkPath(log, dummyWithCoarseMesh)
|
||||||
# dummyWithCoarseMeshBuilded = ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory
|
# dummyWithCoarseMeshBuilded = ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory
|
||||||
# mkPath(log, dummyWithCoarseMeshBuilded)
|
# mkPath(log, dummyWithCoarseMeshBuilded)
|
||||||
# cf = open("confdummy_generated.cfg", "w")
|
# cf = open("confdummy_generated.cfg", "w")
|
||||||
# cf.write("texture_mul_size = " + TextureMulSizeValue + ";\n")
|
# cf.write("texture_mul_size = " + TextureMulSizeValue + ";\n")
|
||||||
# cf.write("\n")
|
# cf.write("\n")
|
||||||
# cf.write("search_path = \n")
|
# cf.write("search_path = \n")
|
||||||
# cf.write("{\n")
|
# cf.write("{\n")
|
||||||
# cf.write("\t\"" + dummyWithCoarseMesh + "\", \n")
|
# cf.write("\t\"" + dummyWithCoarseMesh + "\", \n")
|
||||||
# for dir in MapSourceDirectories:
|
# for dir in MapSourceDirectories:
|
||||||
# cf.write("\t\"" + DatabaseDirectory + "/" + dir + "\", \n")
|
# cf.write("\t\"" + DatabaseDirectory + "/" + dir + "\", \n")
|
||||||
# cf.write("};\n")
|
# cf.write("};\n")
|
||||||
# cf.write("\n")
|
# cf.write("\n")
|
||||||
# cf.write("list_mesh = \n")
|
# cf.write("list_mesh = \n")
|
||||||
# cf.write("{\n")
|
# cf.write("{\n")
|
||||||
# # For each dummy with coarse mesh
|
# # For each dummy with coarse mesh
|
||||||
# files = findFiles(log, dummyWithCoarseMesh, "", ".dummy")
|
# files = findFiles(log, dummyWithCoarseMesh, "", ".dummy")
|
||||||
# for file in files:
|
# for file in files:
|
||||||
# sourceFile = dummyWithCoarseMesh + "/" + file
|
# sourceFile = dummyWithCoarseMesh + "/" + file
|
||||||
# if os.path.isfile(sourceFile):
|
# if os.path.isfile(sourceFile):
|
||||||
# destFile = dummyWithCoarseMeshBuilded + "/" + file
|
# destFile = dummyWithCoarseMeshBuilded + "/" + file
|
||||||
# cf.write("\t\"" + file + "\", \"" + destFile + "\", \n")
|
# cf.write("\t\"" + file + "\", \"" + destFile + "\", \n")
|
||||||
# cf.write("};\n")
|
# cf.write("};\n")
|
||||||
# cf.write("\n")
|
# cf.write("\n")
|
||||||
# cf.write("output_textures = \n")
|
# cf.write("output_textures = \n")
|
||||||
# cf.write("{\n")
|
# cf.write("{\n")
|
||||||
# # For each dummy with coarse mesh
|
# # For each dummy with coarse mesh
|
||||||
# for tn in CoarseMeshTextureNames:
|
# for tn in CoarseMeshTextureNames:
|
||||||
# cf.write("\t\"" + dummyWithCoarseMesh + "/" + tn + ".tga\", \n")
|
# cf.write("\t\"" + dummyWithCoarseMesh + "/" + tn + ".tga\", \n")
|
||||||
# cf.write("};\n")
|
# cf.write("};\n")
|
||||||
# cf.close()
|
# cf.close()
|
||||||
# subprocess.call([ BuildCoarseMesh, "confdummy_generated.cfg" ])
|
# subprocess.call([ BuildCoarseMesh, "confdummy_generated.cfg" ])
|
||||||
# os.remove("confdummy_generated.cfg")
|
# os.remove("confdummy_generated.cfg")
|
||||||
# for tn in CoarseMeshTextureNames:
|
# for tn in CoarseMeshTextureNames:
|
||||||
# subprocess.call([ TgaToDds, dummyWithCoarseMesh + "/" + tn + ".tga", "-o", dummyWithCoarseMeshBuilded + "/" + tn + ".dds", "-a", "5" ])
|
# subprocess.call([ TgaToDds, dummyWithCoarseMesh + "/" + tn + ".tga", "-o", dummyWithCoarseMeshBuilded + "/" + tn + ".dds", "-a", "5" ])
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,63 +1,63 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 3_install.py
|
# \file 3_install.py
|
||||||
# \brief Install dummy
|
# \brief Install dummy
|
||||||
# \date 2010-05-24 13:42GMT
|
# \date 2010-05-24 13:42GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Install dummy
|
# Install dummy
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite_local import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Install dummy")
|
printLog(log, "--- Install dummy")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
#installPath = InstallDirectory + "/" + DummyInstallDirectory
|
#installPath = InstallDirectory + "/" + DummyInstallDirectory
|
||||||
#mkPath(log, installPath)
|
#mkPath(log, installPath)
|
||||||
|
|
||||||
printLog(log, ">>> Install dummy <<<")
|
printLog(log, ">>> Install dummy <<<")
|
||||||
#mkPath(log, ExportBuildDirectory + "/" + DummyExportDirectory)
|
#mkPath(log, ExportBuildDirectory + "/" + DummyExportDirectory)
|
||||||
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyExportDirectory, installPath, ".dummy")
|
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyExportDirectory, installPath, ".dummy")
|
||||||
#mkPath(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory)
|
#mkPath(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory)
|
||||||
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory, installPath, ".dummy")
|
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory, installPath, ".dummy")
|
||||||
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory, installPath, ".dds")
|
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory, installPath, ".dds")
|
||||||
|
|
||||||
#mkPath(log, ExportBuildDirectory + "/" + DummyAnimExportDirectory)
|
#mkPath(log, ExportBuildDirectory + "/" + DummyAnimExportDirectory)
|
||||||
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyAnimExportDirectory, installPath, ".anim")
|
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyAnimExportDirectory, installPath, ".anim")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,98 +1,98 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 0_setup.py
|
# \file 0_setup.py
|
||||||
# \brief setup ai_wmap
|
# \brief setup ai_wmap
|
||||||
# \date 2010-05-24 13:42GMT
|
# \date 2010-05-24 13:42GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Setup ai_wmap
|
# Setup ai_wmap
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Setup ai_wmap")
|
printLog(log, "--- Setup ai_wmap")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# Setup build directories
|
# Setup build directories
|
||||||
printLog(log, ">>> Setup build directories <<<")
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + RbankOutputBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + RbankOutputBuildDirectory)
|
||||||
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory)
|
||||||
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildTagDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildTagDirectory)
|
||||||
|
|
||||||
# Setup lookup directories
|
# Setup lookup directories
|
||||||
printLog(log, ">>> Setup lookup directories <<<")
|
printLog(log, ">>> Setup lookup directories <<<")
|
||||||
for dir in IgLookupDirectories:
|
for dir in IgLookupDirectories:
|
||||||
mkPath(log, ExportBuildDirectory + "/" + dir)
|
mkPath(log, ExportBuildDirectory + "/" + dir)
|
||||||
for dir in PacsPrimLookupDirectories:
|
for dir in PacsPrimLookupDirectories:
|
||||||
mkPath(log, ExportBuildDirectory + "/" + dir)
|
mkPath(log, ExportBuildDirectory + "/" + dir)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup install directories <<<")
|
printLog(log, ">>> Setup install directories <<<")
|
||||||
mkPath(log, InstallDirectory + "/" + AiWmapInstallDirectory)
|
mkPath(log, InstallDirectory + "/" + AiWmapInstallDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup configuration <<<")
|
printLog(log, ">>> Setup configuration <<<")
|
||||||
mkPath(log, InstallDirectory + "/" + AiWmapInstallDirectory)
|
mkPath(log, InstallDirectory + "/" + AiWmapInstallDirectory)
|
||||||
mkPath(log, ActiveProjectDirectory + "/generated")
|
mkPath(log, ActiveProjectDirectory + "/generated")
|
||||||
cfg = open(ActiveProjectDirectory + "/generated/ai_build_wmap.cfg", "w")
|
cfg = open(ActiveProjectDirectory + "/generated/ai_build_wmap.cfg", "w")
|
||||||
cfg.write("\n")
|
cfg.write("\n")
|
||||||
cfg.write("// AI BUILD WMAP CONFIGURATION\n")
|
cfg.write("// AI BUILD WMAP CONFIGURATION\n")
|
||||||
cfg.write("\n")
|
cfg.write("\n")
|
||||||
cfg.write("Paths = {\n")
|
cfg.write("Paths = {\n")
|
||||||
for dir in IgLookupDirectories:
|
for dir in IgLookupDirectories:
|
||||||
cfg.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
|
cfg.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
|
||||||
cfg.write("\t\"" + ExportBuildDirectory + "/" + RbankOutputBuildDirectory + "\", \n")
|
cfg.write("\t\"" + ExportBuildDirectory + "/" + RbankOutputBuildDirectory + "\", \n")
|
||||||
cfg.write("\t\"" + LeveldesignDirectory + "\", \n")
|
cfg.write("\t\"" + LeveldesignDirectory + "\", \n")
|
||||||
cfg.write("};\n")
|
cfg.write("};\n")
|
||||||
cfg.write("\n")
|
cfg.write("\n")
|
||||||
cfg.write("NoRecursePaths = { };\n")
|
cfg.write("NoRecursePaths = { };\n")
|
||||||
cfg.write("\n")
|
cfg.write("\n")
|
||||||
cfg.write("PacsPrimPaths = {\n")
|
cfg.write("PacsPrimPaths = {\n")
|
||||||
for dir in PacsPrimLookupDirectories:
|
for dir in PacsPrimLookupDirectories:
|
||||||
cfg.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
|
cfg.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
|
||||||
cfg.write("};\n")
|
cfg.write("};\n")
|
||||||
cfg.write("\n")
|
cfg.write("\n")
|
||||||
cfg.write("OutputPath = \"" + ExportBuildDirectory + "/" + AiWmapBuildDirectory + "\";\n")
|
cfg.write("OutputPath = \"" + ExportBuildDirectory + "/" + AiWmapBuildDirectory + "\";\n")
|
||||||
cfg.write("\n")
|
cfg.write("\n")
|
||||||
cfg.write("Commands = {\n")
|
cfg.write("Commands = {\n")
|
||||||
cfg.write("\t\"Verbose " + str(AiWmapVerbose) + "\", \n")
|
cfg.write("\t\"Verbose " + str(AiWmapVerbose) + "\", \n")
|
||||||
for startPoint in AiWmapStartPoints:
|
for startPoint in AiWmapStartPoints:
|
||||||
cfg.write("\t\"setStartPoint " + startPoint + "\", \n")
|
cfg.write("\t\"setStartPoint " + startPoint + "\", \n")
|
||||||
cfg.write("};\n")
|
cfg.write("};\n")
|
||||||
cfg.write("\n")
|
cfg.write("\n")
|
||||||
cfg.close()
|
cfg.close()
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,49 +1,49 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 1_export.py
|
# \file 1_export.py
|
||||||
# \brief Export ai_wmap
|
# \brief Export ai_wmap
|
||||||
# \date 2010-05-24 13:42GMT
|
# \date 2010-05-24 13:42GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Export ai_wmap
|
# Export ai_wmap
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Export ai_wmap")
|
printLog(log, "--- Export ai_wmap")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,57 +1,57 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 3_install.py
|
# \file 3_install.py
|
||||||
# \brief Install ai_wmap
|
# \brief Install ai_wmap
|
||||||
# \date 2010-05-24 13:42GMT
|
# \date 2010-05-24 13:42GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Install ai_wmap
|
# Install ai_wmap
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite_local import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Install ai_wmap")
|
printLog(log, "--- Install ai_wmap")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
installPath = InstallDirectory + "/" + AiWmapInstallDirectory
|
installPath = InstallDirectory + "/" + AiWmapInstallDirectory
|
||||||
mkPath(log, installPath)
|
mkPath(log, installPath)
|
||||||
|
|
||||||
printLog(log, ">>> Install ai_wmap <<<")
|
printLog(log, ">>> Install ai_wmap <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory)
|
||||||
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory, installPath)
|
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory, installPath)
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,66 +1,66 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 0_setup.py
|
# \file 0_setup.py
|
||||||
# \brief Setup anim
|
# \brief Setup anim
|
||||||
# \date 2009-03-10 14:56GMT
|
# \date 2009-03-10 14:56GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Setup anim
|
# Setup anim
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Setup anim")
|
printLog(log, "--- Setup anim")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# Setup source directories
|
# Setup source directories
|
||||||
printLog(log, ">>> Setup source directories <<<")
|
printLog(log, ">>> Setup source directories <<<")
|
||||||
for dir in AnimSourceDirectories:
|
for dir in AnimSourceDirectories:
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
|
||||||
# Setup export directories
|
# Setup export directories
|
||||||
printLog(log, ">>> Setup export directories <<<")
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + AnimExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + AnimExportDirectory)
|
||||||
|
|
||||||
# Setup build directories
|
# Setup build directories
|
||||||
printLog(log, ">>> Setup build directories <<<")
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + AnimBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + AnimBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, InstallDirectory + "/" + AnimInstallDirectory)
|
mkPath(log, InstallDirectory + "/" + AnimInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,139 +1,139 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# #################################################################
|
# #################################################################
|
||||||
# ## WARNING : this is a generated file, don't change it !
|
# ## WARNING : this is a generated file, don't change it !
|
||||||
# #################################################################
|
# #################################################################
|
||||||
#
|
#
|
||||||
# \file 1_export.py
|
# \file 1_export.py
|
||||||
# \brief Export anim
|
# \brief Export anim
|
||||||
# \date 2015-01-06-16-31-GMT
|
# \date 2015-01-06-16-31-GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Export anim
|
# Export anim
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
if os.path.isfile("temp_log.log"):
|
if os.path.isfile("temp_log.log"):
|
||||||
os.remove("temp_log.log")
|
os.remove("temp_log.log")
|
||||||
log = open("temp_log.log", "w")
|
log = open("temp_log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Export anim")
|
printLog(log, "--- Export anim")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
|
|
||||||
# Find tools
|
# Find tools
|
||||||
# ...
|
# ...
|
||||||
|
|
||||||
# Export anim 3dsmax
|
# Export anim 3dsmax
|
||||||
if MaxAvailable:
|
if MaxAvailable:
|
||||||
# Find tools
|
# Find tools
|
||||||
Max = findMax(log, MaxDirectory, MaxExecutable)
|
Max = findMax(log, MaxDirectory, MaxExecutable)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
printLog(log, ">>> Export anim 3dsmax <<<")
|
printLog(log, ">>> Export anim 3dsmax <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + AnimExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + AnimExportDirectory)
|
||||||
mkPath(log, ExportBuildDirectory + "/" + AnimTagExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + AnimTagExportDirectory)
|
||||||
for dir in AnimSourceDirectories:
|
for dir in AnimSourceDirectories:
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
if (needUpdateDirByTagLog(log, DatabaseDirectory + "/" + dir, ".max", ExportBuildDirectory + "/" + AnimTagExportDirectory, ".max.tag")):
|
if (needUpdateDirByTagLog(log, DatabaseDirectory + "/" + dir, ".max", ExportBuildDirectory + "/" + AnimTagExportDirectory, ".max.tag")):
|
||||||
scriptSrc = "maxscript/anim_export.ms"
|
scriptSrc = "maxscript/anim_export.ms"
|
||||||
scriptDst = MaxUserDirectory + "/scripts/anim_export.ms"
|
scriptDst = MaxUserDirectory + "/scripts/anim_export.ms"
|
||||||
outputLogfile = ScriptDirectory + "/processes/anim/log.log"
|
outputLogfile = ScriptDirectory + "/processes/anim/log.log"
|
||||||
outputDirectory = ExportBuildDirectory + "/" + AnimExportDirectory
|
outputDirectory = ExportBuildDirectory + "/" + AnimExportDirectory
|
||||||
tagDirectory = ExportBuildDirectory + "/" + AnimTagExportDirectory
|
tagDirectory = ExportBuildDirectory + "/" + AnimTagExportDirectory
|
||||||
maxSourceDir = DatabaseDirectory + "/" + dir
|
maxSourceDir = DatabaseDirectory + "/" + dir
|
||||||
maxRunningTagFile = tagDirectory + "/max_running.tag"
|
maxRunningTagFile = tagDirectory + "/max_running.tag"
|
||||||
tagList = findFiles(log, tagDirectory, "", ".max.tag")
|
tagList = findFiles(log, tagDirectory, "", ".max.tag")
|
||||||
tagLen = len(tagList)
|
tagLen = len(tagList)
|
||||||
if os.path.isfile(scriptDst):
|
if os.path.isfile(scriptDst):
|
||||||
os.remove(scriptDst)
|
os.remove(scriptDst)
|
||||||
tagDiff = 1
|
tagDiff = 1
|
||||||
sSrc = open(scriptSrc, "r")
|
sSrc = open(scriptSrc, "r")
|
||||||
sDst = open(scriptDst, "w")
|
sDst = open(scriptDst, "w")
|
||||||
for line in sSrc:
|
for line in sSrc:
|
||||||
newline = line.replace("%OutputLogfile%", outputLogfile)
|
newline = line.replace("%OutputLogfile%", outputLogfile)
|
||||||
newline = newline.replace("%MaxSourceDirectory%", maxSourceDir)
|
newline = newline.replace("%MaxSourceDirectory%", maxSourceDir)
|
||||||
newline = newline.replace("%OutputDirectory%", outputDirectory)
|
newline = newline.replace("%OutputDirectory%", outputDirectory)
|
||||||
newline = newline.replace("%TagDirectory%", tagDirectory)
|
newline = newline.replace("%TagDirectory%", tagDirectory)
|
||||||
sDst.write(newline)
|
sDst.write(newline)
|
||||||
sSrc.close()
|
sSrc.close()
|
||||||
sDst.close()
|
sDst.close()
|
||||||
zeroRetryLimit = 3
|
zeroRetryLimit = 3
|
||||||
while tagDiff > 0:
|
while tagDiff > 0:
|
||||||
mrt = open(maxRunningTagFile, "w")
|
mrt = open(maxRunningTagFile, "w")
|
||||||
mrt.write("moe-moe-kyun")
|
mrt.write("moe-moe-kyun")
|
||||||
mrt.close()
|
mrt.close()
|
||||||
printLog(log, "MAXSCRIPT " + scriptDst)
|
printLog(log, "MAXSCRIPT " + scriptDst)
|
||||||
subprocess.call([ Max, "-U", "MAXScript", "anim_export.ms", "-q", "-mi", "-mip" ])
|
subprocess.call([ Max, "-U", "MAXScript", "anim_export.ms", "-q", "-mi", "-mip" ])
|
||||||
if os.path.exists(outputLogfile):
|
if os.path.exists(outputLogfile):
|
||||||
try:
|
try:
|
||||||
lSrc = open(outputLogfile, "r")
|
lSrc = open(outputLogfile, "r")
|
||||||
for line in lSrc:
|
for line in lSrc:
|
||||||
lineStrip = line.strip()
|
lineStrip = line.strip()
|
||||||
if (len(lineStrip) > 0):
|
if (len(lineStrip) > 0):
|
||||||
printLog(log, lineStrip)
|
printLog(log, lineStrip)
|
||||||
lSrc.close()
|
lSrc.close()
|
||||||
os.remove(outputLogfile)
|
os.remove(outputLogfile)
|
||||||
except Exception:
|
except Exception:
|
||||||
printLog(log, "ERROR Failed to read 3dsmax log")
|
printLog(log, "ERROR Failed to read 3dsmax log")
|
||||||
else:
|
else:
|
||||||
printLog(log, "WARNING No 3dsmax log")
|
printLog(log, "WARNING No 3dsmax log")
|
||||||
tagList = findFiles(log, tagDirectory, "", ".max.tag")
|
tagList = findFiles(log, tagDirectory, "", ".max.tag")
|
||||||
newTagLen = len(tagList)
|
newTagLen = len(tagList)
|
||||||
tagDiff = newTagLen - tagLen
|
tagDiff = newTagLen - tagLen
|
||||||
tagLen = newTagLen
|
tagLen = newTagLen
|
||||||
addTagDiff = 0
|
addTagDiff = 0
|
||||||
if os.path.exists(maxRunningTagFile):
|
if os.path.exists(maxRunningTagFile):
|
||||||
printLog(log, "FAIL 3ds Max crashed and/or file export failed!")
|
printLog(log, "FAIL 3ds Max crashed and/or file export failed!")
|
||||||
if tagDiff == 0:
|
if tagDiff == 0:
|
||||||
if zeroRetryLimit > 0:
|
if zeroRetryLimit > 0:
|
||||||
zeroRetryLimit = zeroRetryLimit - 1
|
zeroRetryLimit = zeroRetryLimit - 1
|
||||||
addTagDiff = 1
|
addTagDiff = 1
|
||||||
else:
|
else:
|
||||||
printLog(log, "FAIL Retry limit reached!")
|
printLog(log, "FAIL Retry limit reached!")
|
||||||
else:
|
else:
|
||||||
addTagDiff = 1
|
addTagDiff = 1
|
||||||
os.remove(maxRunningTagFile)
|
os.remove(maxRunningTagFile)
|
||||||
printLog(log, "Exported " + str(tagDiff) + " .max files!")
|
printLog(log, "Exported " + str(tagDiff) + " .max files!")
|
||||||
tagDiff += addTagDiff
|
tagDiff += addTagDiff
|
||||||
os.remove(scriptDst)
|
os.remove(scriptDst)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
shutil.move("temp_log.log", "log.log")
|
shutil.move("temp_log.log", "log.log")
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,70 +1,70 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 2_build.py
|
# \file 2_build.py
|
||||||
# \brief Build anim
|
# \brief Build anim
|
||||||
# \date 2009-03-10 13:13GMT
|
# \date 2009-03-10 13:13GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Build anim
|
# Build anim
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Build anim")
|
printLog(log, "--- Build anim")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# Find tools
|
# Find tools
|
||||||
AnimBuilder = findTool(log, ToolDirectories, AnimBuilderTool, ToolSuffix)
|
AnimBuilder = findTool(log, ToolDirectories, AnimBuilderTool, ToolSuffix)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# For each anim directory
|
# For each anim directory
|
||||||
printLog(log, ">>> Build anim <<<")
|
printLog(log, ">>> Build anim <<<")
|
||||||
if AnimBuilder == "":
|
if AnimBuilder == "":
|
||||||
toolLogFail(log, AnimBuilderTool, ToolSuffix)
|
toolLogFail(log, AnimBuilderTool, ToolSuffix)
|
||||||
else:
|
else:
|
||||||
srcDir = ExportBuildDirectory + "/" + AnimExportDirectory
|
srcDir = ExportBuildDirectory + "/" + AnimExportDirectory
|
||||||
mkPath(log, srcDir)
|
mkPath(log, srcDir)
|
||||||
destDir = ExportBuildDirectory + "/" + AnimBuildDirectory
|
destDir = ExportBuildDirectory + "/" + AnimBuildDirectory
|
||||||
mkPath(log, destDir)
|
mkPath(log, destDir)
|
||||||
if DoOptimizeAnimations:
|
if DoOptimizeAnimations:
|
||||||
printLog(log, ">>> Optimizing animations <<<")
|
printLog(log, ">>> Optimizing animations <<<")
|
||||||
subprocess.call([ AnimBuilder, srcDir, destDir, ActiveProjectDirectory + "/anim_builder.cfg" ])
|
subprocess.call([ AnimBuilder, srcDir, destDir, ActiveProjectDirectory + "/anim_builder.cfg" ])
|
||||||
else:
|
else:
|
||||||
printLog(log, ">>> Not optimizing animations <<<")
|
printLog(log, ">>> Not optimizing animations <<<")
|
||||||
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,57 +1,57 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 3_install.py
|
# \file 3_install.py
|
||||||
# \brief Install anim
|
# \brief Install anim
|
||||||
# \date 2009-03-10 13:13GMT
|
# \date 2009-03-10 13:13GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Install anim
|
# Install anim
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite_local import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Install anim")
|
printLog(log, "--- Install anim")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
printLog(log, ">>> Install anim <<<")
|
printLog(log, ">>> Install anim <<<")
|
||||||
srcDir = ExportBuildDirectory + "/" + AnimBuildDirectory
|
srcDir = ExportBuildDirectory + "/" + AnimBuildDirectory
|
||||||
mkPath(log, srcDir)
|
mkPath(log, srcDir)
|
||||||
destDir = InstallDirectory + "/" + AnimInstallDirectory
|
destDir = InstallDirectory + "/" + AnimInstallDirectory
|
||||||
mkPath(log, destDir)
|
mkPath(log, destDir)
|
||||||
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,49 +1,49 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 1_export.py
|
# \file 1_export.py
|
||||||
# \brief Export cartographer
|
# \brief Export cartographer
|
||||||
# \date 2014-09-13 13:32GMT
|
# \date 2014-09-13 13:32GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Export cartographer
|
# Export cartographer
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2014 Jan BOON
|
# Copyright (C) 2014 Jan BOON
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Export cartographer")
|
printLog(log, "--- Export cartographer")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,62 +1,87 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 2_build.py
|
# \file 2_build.py
|
||||||
# \brief Build cartographer
|
# \brief Build cartographer
|
||||||
# \date 2014-09-13 13:32GMT
|
# \date 2014-09-13 13:32GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Build cartographer
|
# Build cartographer
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2014 Jan BOON
|
# Copyright (C) 2014 Jan BOON
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Build cartographer")
|
printLog(log, "--- Build cartographer")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# Find tools
|
# Find tools
|
||||||
R2IslandsTextures = findTool(log, ToolDirectories, R2IslandsTexturesTool, ToolSuffix)
|
R2IslandsTextures = findTool(log, ToolDirectories, R2IslandsTexturesTool, ToolSuffix)
|
||||||
|
TgaToDds = findTool(log, ToolDirectories, TgaToDdsTool, ToolSuffix)
|
||||||
if R2IslandsTextures == "":
|
|
||||||
toolLogFail(log, R2IslandsTexturesTool, ToolSuffix)
|
if R2IslandsTextures == "":
|
||||||
else:
|
toolLogFail(log, R2IslandsTexturesTool, ToolSuffix)
|
||||||
printLog(log, ">>> Copy island_screenshots.cfg <<<")
|
else:
|
||||||
cfgPath = ActiveProjectDirectory + "/generated/island_screenshots.cfg"
|
printLog(log, ">>> Copy island_screenshots.cfg <<<")
|
||||||
shutil.copy(cfgPath, "island_screenshots.cfg")
|
cfgPath = ActiveProjectDirectory + "/generated/island_screenshots.cfg"
|
||||||
printLog(log, ">>> Build cartographer <<<")
|
shutil.copy(cfgPath, "island_screenshots.cfg")
|
||||||
subprocess.call([ R2IslandsTextures ])
|
printLog(log, ">>> Build cartographer <<<")
|
||||||
printLog(log, "")
|
mkPath(log, ExportBuildDirectory + "/" + CartographerBuildDirectory)
|
||||||
|
subprocess.call([ R2IslandsTextures ])
|
||||||
log.close()
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, ">>> Compress cartographer maps to DDS <<<")
|
||||||
# end of file
|
if TgaToDds == "":
|
||||||
|
toolLogFail(log, TgaToDdsTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
destPath = ExportBuildDirectory + "/" + CartographerMapBuildDirectory
|
||||||
|
mkPath(log, destPath)
|
||||||
|
sourcePath = ExportBuildDirectory + "/" + CartographerBuildDirectory
|
||||||
|
mkPath(log, sourcePath)
|
||||||
|
files = os.listdir(sourcePath)
|
||||||
|
len_tga_png = len(".tga")
|
||||||
|
len_dds = len(".dds")
|
||||||
|
for fileName in files:
|
||||||
|
if isLegalFileName(fileName):
|
||||||
|
sourceFile = sourcePath + "/" + fileName
|
||||||
|
if os.path.isfile(sourceFile):
|
||||||
|
if (fileName[-len_tga_png:].lower() == ".tga") or (fileName[-len_tga_png:].lower() == ".png"):
|
||||||
|
destFile = destPath + "/" + os.path.basename(fileName)[0:-len_tga_png] + ".dds"
|
||||||
|
if needUpdateLogRemoveDest(log, sourceFile, destFile):
|
||||||
|
subprocess.call([ TgaToDds, sourceFile, "-o", destFile, "-m" ])
|
||||||
|
elif not os.path.isdir(sourceFile):
|
||||||
|
printLog(log, "FAIL ?! file not dir or file ?! " + sourceFile)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
||||||
|
@ -1,57 +1,66 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 3_install.py
|
# \file 3_install.py
|
||||||
# \brief Install cartographer
|
# \brief Install cartographer
|
||||||
# \date 2014-09-13 13:32GMT
|
# \date 2014-09-13 13:32GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Install cartographer
|
# Install cartographer
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2014 Jan BOON
|
# Copyright (C) 2014 Jan BOON
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite_local import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Install cartographer")
|
printLog(log, "--- Install cartographer")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
installPath = InstallDirectory + "/" + CartographerInstallDirectory
|
|
||||||
mkPath(log, installPath)
|
installPath = InstallDirectory + "/" + CartographerInstallDirectory
|
||||||
|
islandsInstallPath = InstallDirectory + "/" + IslandsInstallDirectory
|
||||||
printLog(log, ">>> Install cartographer <<<")
|
|
||||||
mkPath(log, ExportBuildDirectory + "/" + CartographerBuildDirectory)
|
|
||||||
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + CartographerBuildDirectory, installPath)
|
printLog(log, ">>> Install cartographer <<<")
|
||||||
|
|
||||||
printLog(log, "")
|
mkPath(log, ExportBuildDirectory + "/" + CartographerMapBuildDirectory)
|
||||||
log.close()
|
mkPath(log, installPath)
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + CartographerMapBuildDirectory, installPath, ".dds")
|
||||||
|
|
||||||
# end of file
|
mkPath(log, ExportBuildDirectory + "/" + CartographerBuildDirectory)
|
||||||
|
mkPath(log, islandsInstallPath)
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + CartographerBuildDirectory, islandsInstallPath, ".xml")
|
||||||
|
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
||||||
|
@ -1,65 +1,65 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 0_setup.py
|
# \file 0_setup.py
|
||||||
# \brief Setup cegui
|
# \brief Setup cegui
|
||||||
# \date 2009-03-14-17-46-GMT
|
# \date 2009-03-14-17-46-GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Setup cegui
|
# Setup cegui
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Setup cegui")
|
printLog(log, "--- Setup cegui")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# Setup source directories
|
# Setup source directories
|
||||||
printLog(log, ">>> Setup source directories <<<")
|
printLog(log, ">>> Setup source directories <<<")
|
||||||
for dir in CeguiImagesetSourceDirectories:
|
for dir in CeguiImagesetSourceDirectories:
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
|
||||||
# Setup export directories
|
# Setup export directories
|
||||||
printLog(log, ">>> Setup export directories <<<")
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + CeguiImagesetExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + CeguiImagesetExportDirectory)
|
||||||
|
|
||||||
# Setup build directories
|
# Setup build directories
|
||||||
printLog(log, ">>> Setup build directories <<<")
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, InstallDirectory + "/" + CeguiImagesetInstallDirectory)
|
mkPath(log, InstallDirectory + "/" + CeguiImagesetInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,67 +1,67 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 1_export.py
|
# \file 1_export.py
|
||||||
# \brief Export cegui
|
# \brief Export cegui
|
||||||
# \date 2009-03-14-17-46-GMT
|
# \date 2009-03-14-17-46-GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Export cegui
|
# Export cegui
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Export cegui")
|
printLog(log, "--- Export cegui")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# For each cegui imageset directory
|
# For each cegui imageset directory
|
||||||
printLog(log, ">>> Export cegui imagesets <<<")
|
printLog(log, ">>> Export cegui imagesets <<<")
|
||||||
destDir = ExportBuildDirectory + "/" + CeguiImagesetExportDirectory
|
destDir = ExportBuildDirectory + "/" + CeguiImagesetExportDirectory
|
||||||
mkPath(log, destDir)
|
mkPath(log, destDir)
|
||||||
for dir in CeguiImagesetSourceDirectories:
|
for dir in CeguiImagesetSourceDirectories:
|
||||||
srcDir = DatabaseDirectory + "/" + dir
|
srcDir = DatabaseDirectory + "/" + dir
|
||||||
mkPath(log, srcDir)
|
mkPath(log, srcDir)
|
||||||
imagesets = findFiles(log, srcDir, "", ".imageset")
|
imagesets = findFiles(log, srcDir, "", ".imageset")
|
||||||
if (len(imagesets) != 1):
|
if (len(imagesets) != 1):
|
||||||
printLog(log, "FAIL Cannot find *.imageset, folder must contain at least one and only one imageset xml file")
|
printLog(log, "FAIL Cannot find *.imageset, folder must contain at least one and only one imageset xml file")
|
||||||
else:
|
else:
|
||||||
niouname = dir.replace("/", "_")
|
niouname = dir.replace("/", "_")
|
||||||
newpath = destDir + "/" + niouname
|
newpath = destDir + "/" + niouname
|
||||||
mkPath(log, newpath)
|
mkPath(log, newpath)
|
||||||
copyFileIfNeeded(log, srcDir + "/" + imagesets[0], newpath + ".imageset")
|
copyFileIfNeeded(log, srcDir + "/" + imagesets[0], newpath + ".imageset")
|
||||||
copyFilesExtNoTreeIfNeeded(log, srcDir, newpath, ".tga")
|
copyFilesExtNoTreeIfNeeded(log, srcDir, newpath, ".tga")
|
||||||
copyFilesExtNoTreeIfNeeded(log, srcDir, newpath, ".png")
|
copyFilesExtNoTreeIfNeeded(log, srcDir, newpath, ".png")
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,67 +1,67 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 2_build.py
|
# \file 2_build.py
|
||||||
# \brief Build cegui
|
# \brief Build cegui
|
||||||
# \date 2009-03-14-17-46-GMT
|
# \date 2009-03-14-17-46-GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Build cegui
|
# Build cegui
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Build cegui")
|
printLog(log, "--- Build cegui")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# Find tools
|
# Find tools
|
||||||
BuildImageset = findTool(log, ToolDirectories, BuildImagesetTool, ToolSuffix)
|
BuildImageset = findTool(log, ToolDirectories, BuildImagesetTool, ToolSuffix)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# For each cegui imageset directory
|
# For each cegui imageset directory
|
||||||
printLog(log, ">>> Build cegui imagesets <<<")
|
printLog(log, ">>> Build cegui imagesets <<<")
|
||||||
if BuildImageset == "":
|
if BuildImageset == "":
|
||||||
toolLogFail(log, BuildImagesetTool, ToolSuffix)
|
toolLogFail(log, BuildImagesetTool, ToolSuffix)
|
||||||
else:
|
else:
|
||||||
srcDir = ExportBuildDirectory + "/" + CeguiImagesetExportDirectory
|
srcDir = ExportBuildDirectory + "/" + CeguiImagesetExportDirectory
|
||||||
mkPath(log, srcDir)
|
mkPath(log, srcDir)
|
||||||
destDir = ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory
|
destDir = ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory
|
||||||
mkPath(log, destDir)
|
mkPath(log, destDir)
|
||||||
for dir in os.listdir(srcDir):
|
for dir in os.listdir(srcDir):
|
||||||
if (os.path.isdir(srcDir + "/" + dir)) and dir != ".svn" and dir != "*.*":
|
if (os.path.isdir(srcDir + "/" + dir)) and dir != ".svn" and dir != "*.*":
|
||||||
mkPath(log, srcDir + "/" + dir)
|
mkPath(log, srcDir + "/" + dir)
|
||||||
subprocess.call([ BuildImageset, destDir + "/" + dir + ".tga", srcDir + "/" + dir ])
|
subprocess.call([ BuildImageset, destDir + "/" + dir + ".tga", srcDir + "/" + dir ])
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,56 +1,56 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 3_install.py
|
# \file 3_install.py
|
||||||
# \brief Install cegui
|
# \brief Install cegui
|
||||||
# \date 2009-03-14-17-46-GMT
|
# \date 2009-03-14-17-46-GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Install cegui
|
# Install cegui
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite_local import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Install cegui")
|
printLog(log, "--- Install cegui")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
printLog(log, ">>> Install cegui imagesets <<<")
|
printLog(log, ">>> Install cegui imagesets <<<")
|
||||||
srcDir = ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory
|
srcDir = ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory
|
||||||
mkPath(log, srcDir)
|
mkPath(log, srcDir)
|
||||||
destDir = InstallDirectory + "/" + CeguiImagesetInstallDirectory
|
destDir = InstallDirectory + "/" + CeguiImagesetInstallDirectory
|
||||||
mkPath(log, destDir)
|
mkPath(log, destDir)
|
||||||
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,87 +1,87 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 0_setup.py
|
# \file 0_setup.py
|
||||||
# \brief Setup clodbank
|
# \brief Setup clodbank
|
||||||
# \date 2009-03-10 14:56GMT
|
# \date 2009-03-10 14:56GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Setup clodbank
|
# Setup clodbank
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Setup clodbank")
|
printLog(log, "--- Setup clodbank")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# Setup source directories
|
# Setup source directories
|
||||||
printLog(log, ">>> Setup source directories <<<")
|
printLog(log, ">>> Setup source directories <<<")
|
||||||
for dir in ClodSourceDirectories:
|
for dir in ClodSourceDirectories:
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
|
||||||
# Setup export directories
|
# Setup export directories
|
||||||
printLog(log, ">>> Setup export directories <<<")
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + ClodTagExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + ClodTagExportDirectory)
|
||||||
mkPath(log, ExportBuildDirectory + "/" + ClodExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + ClodExportDirectory)
|
||||||
mkPath(log, ExportBuildDirectory + "/" + SkelExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + SkelExportDirectory)
|
||||||
|
|
||||||
# Setup build directories
|
# Setup build directories
|
||||||
printLog(log, ">>> Setup build directories <<<")
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + ClodBankBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + ClodBankBuildDirectory)
|
||||||
mkPath(log, ExportBuildDirectory + "/" + AnimBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + AnimBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, InstallDirectory + "/" + ShapeInstallDirectory)
|
mkPath(log, InstallDirectory + "/" + ShapeInstallDirectory)
|
||||||
|
|
||||||
# Setup configuration files
|
# Setup configuration files
|
||||||
printLog(log, ">>> Setup configuration files <<<")
|
printLog(log, ">>> Setup configuration files <<<")
|
||||||
mkPath(log, ActiveProjectDirectory + "/generated")
|
mkPath(log, ActiveProjectDirectory + "/generated")
|
||||||
cfgOut = open(ActiveProjectDirectory + "/generated/clod_paths.cfg", "w")
|
cfgOut = open(ActiveProjectDirectory + "/generated/clod_paths.cfg", "w")
|
||||||
cfgOut.write("\n")
|
cfgOut.write("\n")
|
||||||
cfgOut.write("// The search pathes, look in the current process\n")
|
cfgOut.write("// The search pathes, look in the current process\n")
|
||||||
cfgOut.write("search_pathes = \n")
|
cfgOut.write("search_pathes = \n")
|
||||||
cfgOut.write("{\n")
|
cfgOut.write("{\n")
|
||||||
cfgOut.write("\t\"" + ExportBuildDirectory + "/" + ClodExportDirectory + "\", \n")
|
cfgOut.write("\t\"" + ExportBuildDirectory + "/" + ClodExportDirectory + "\", \n")
|
||||||
cfgOut.write("\t\"" + ExportBuildDirectory + "/" + SkelExportDirectory + "\", \n")
|
cfgOut.write("\t\"" + ExportBuildDirectory + "/" + SkelExportDirectory + "\", \n")
|
||||||
cfgOut.write("\t\"" + ExportBuildDirectory + "/" + AnimBuildDirectory + "\", \n")
|
cfgOut.write("\t\"" + ExportBuildDirectory + "/" + AnimBuildDirectory + "\", \n")
|
||||||
cfgOut.write("\t\"" + ExportBuildDirectory + "/" + ShapeOptimizedBuildDirectory + "\", \n")
|
cfgOut.write("\t\"" + ExportBuildDirectory + "/" + ShapeOptimizedBuildDirectory + "\", \n")
|
||||||
cfgOut.write("\t\"" + ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory + "\", \n")
|
cfgOut.write("\t\"" + ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory + "\", \n")
|
||||||
cfgOut.write("};\n")
|
cfgOut.write("};\n")
|
||||||
cfgOut.write("\n")
|
cfgOut.write("\n")
|
||||||
cfgOut.close()
|
cfgOut.close()
|
||||||
|
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,139 +1,139 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# #################################################################
|
# #################################################################
|
||||||
# ## WARNING : this is a generated file, don't change it !
|
# ## WARNING : this is a generated file, don't change it !
|
||||||
# #################################################################
|
# #################################################################
|
||||||
#
|
#
|
||||||
# \file 1_export.py
|
# \file 1_export.py
|
||||||
# \brief Export clodbank
|
# \brief Export clodbank
|
||||||
# \date 2015-01-06-16-31-GMT
|
# \date 2015-01-06-16-31-GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Export clodbank
|
# Export clodbank
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
if os.path.isfile("temp_log.log"):
|
if os.path.isfile("temp_log.log"):
|
||||||
os.remove("temp_log.log")
|
os.remove("temp_log.log")
|
||||||
log = open("temp_log.log", "w")
|
log = open("temp_log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Export clodbank")
|
printLog(log, "--- Export clodbank")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
|
|
||||||
# Find tools
|
# Find tools
|
||||||
# ...
|
# ...
|
||||||
|
|
||||||
# Export clodbank 3dsmax
|
# Export clodbank 3dsmax
|
||||||
if MaxAvailable:
|
if MaxAvailable:
|
||||||
# Find tools
|
# Find tools
|
||||||
Max = findMax(log, MaxDirectory, MaxExecutable)
|
Max = findMax(log, MaxDirectory, MaxExecutable)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
printLog(log, ">>> Export clodbank 3dsmax <<<")
|
printLog(log, ">>> Export clodbank 3dsmax <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + ClodExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + ClodExportDirectory)
|
||||||
mkPath(log, ExportBuildDirectory + "/" + ClodTagExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + ClodTagExportDirectory)
|
||||||
for dir in ClodSourceDirectories:
|
for dir in ClodSourceDirectories:
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
if (needUpdateDirByTagLog(log, DatabaseDirectory + "/" + dir, ".max", ExportBuildDirectory + "/" + ClodTagExportDirectory, ".max.tag")):
|
if (needUpdateDirByTagLog(log, DatabaseDirectory + "/" + dir, ".max", ExportBuildDirectory + "/" + ClodTagExportDirectory, ".max.tag")):
|
||||||
scriptSrc = "maxscript/clod_export.ms"
|
scriptSrc = "maxscript/clod_export.ms"
|
||||||
scriptDst = MaxUserDirectory + "/scripts/clod_export.ms"
|
scriptDst = MaxUserDirectory + "/scripts/clod_export.ms"
|
||||||
outputLogfile = ScriptDirectory + "/processes/clodbank/log.log"
|
outputLogfile = ScriptDirectory + "/processes/clodbank/log.log"
|
||||||
outputDirectory = ExportBuildDirectory + "/" + ClodExportDirectory
|
outputDirectory = ExportBuildDirectory + "/" + ClodExportDirectory
|
||||||
tagDirectory = ExportBuildDirectory + "/" + ClodTagExportDirectory
|
tagDirectory = ExportBuildDirectory + "/" + ClodTagExportDirectory
|
||||||
maxSourceDir = DatabaseDirectory + "/" + dir
|
maxSourceDir = DatabaseDirectory + "/" + dir
|
||||||
maxRunningTagFile = tagDirectory + "/max_running.tag"
|
maxRunningTagFile = tagDirectory + "/max_running.tag"
|
||||||
tagList = findFiles(log, tagDirectory, "", ".max.tag")
|
tagList = findFiles(log, tagDirectory, "", ".max.tag")
|
||||||
tagLen = len(tagList)
|
tagLen = len(tagList)
|
||||||
if os.path.isfile(scriptDst):
|
if os.path.isfile(scriptDst):
|
||||||
os.remove(scriptDst)
|
os.remove(scriptDst)
|
||||||
tagDiff = 1
|
tagDiff = 1
|
||||||
sSrc = open(scriptSrc, "r")
|
sSrc = open(scriptSrc, "r")
|
||||||
sDst = open(scriptDst, "w")
|
sDst = open(scriptDst, "w")
|
||||||
for line in sSrc:
|
for line in sSrc:
|
||||||
newline = line.replace("%OutputLogfile%", outputLogfile)
|
newline = line.replace("%OutputLogfile%", outputLogfile)
|
||||||
newline = newline.replace("%MaxSourceDirectory%", maxSourceDir)
|
newline = newline.replace("%MaxSourceDirectory%", maxSourceDir)
|
||||||
newline = newline.replace("%OutputDirectory%", outputDirectory)
|
newline = newline.replace("%OutputDirectory%", outputDirectory)
|
||||||
newline = newline.replace("%TagDirectory%", tagDirectory)
|
newline = newline.replace("%TagDirectory%", tagDirectory)
|
||||||
sDst.write(newline)
|
sDst.write(newline)
|
||||||
sSrc.close()
|
sSrc.close()
|
||||||
sDst.close()
|
sDst.close()
|
||||||
zeroRetryLimit = 3
|
zeroRetryLimit = 3
|
||||||
while tagDiff > 0:
|
while tagDiff > 0:
|
||||||
mrt = open(maxRunningTagFile, "w")
|
mrt = open(maxRunningTagFile, "w")
|
||||||
mrt.write("moe-moe-kyun")
|
mrt.write("moe-moe-kyun")
|
||||||
mrt.close()
|
mrt.close()
|
||||||
printLog(log, "MAXSCRIPT " + scriptDst)
|
printLog(log, "MAXSCRIPT " + scriptDst)
|
||||||
subprocess.call([ Max, "-U", "MAXScript", "clod_export.ms", "-q", "-mi", "-mip" ])
|
subprocess.call([ Max, "-U", "MAXScript", "clod_export.ms", "-q", "-mi", "-mip" ])
|
||||||
if os.path.exists(outputLogfile):
|
if os.path.exists(outputLogfile):
|
||||||
try:
|
try:
|
||||||
lSrc = open(outputLogfile, "r")
|
lSrc = open(outputLogfile, "r")
|
||||||
for line in lSrc:
|
for line in lSrc:
|
||||||
lineStrip = line.strip()
|
lineStrip = line.strip()
|
||||||
if (len(lineStrip) > 0):
|
if (len(lineStrip) > 0):
|
||||||
printLog(log, lineStrip)
|
printLog(log, lineStrip)
|
||||||
lSrc.close()
|
lSrc.close()
|
||||||
os.remove(outputLogfile)
|
os.remove(outputLogfile)
|
||||||
except Exception:
|
except Exception:
|
||||||
printLog(log, "ERROR Failed to read 3dsmax log")
|
printLog(log, "ERROR Failed to read 3dsmax log")
|
||||||
else:
|
else:
|
||||||
printLog(log, "WARNING No 3dsmax log")
|
printLog(log, "WARNING No 3dsmax log")
|
||||||
tagList = findFiles(log, tagDirectory, "", ".max.tag")
|
tagList = findFiles(log, tagDirectory, "", ".max.tag")
|
||||||
newTagLen = len(tagList)
|
newTagLen = len(tagList)
|
||||||
tagDiff = newTagLen - tagLen
|
tagDiff = newTagLen - tagLen
|
||||||
tagLen = newTagLen
|
tagLen = newTagLen
|
||||||
addTagDiff = 0
|
addTagDiff = 0
|
||||||
if os.path.exists(maxRunningTagFile):
|
if os.path.exists(maxRunningTagFile):
|
||||||
printLog(log, "FAIL 3ds Max crashed and/or file export failed!")
|
printLog(log, "FAIL 3ds Max crashed and/or file export failed!")
|
||||||
if tagDiff == 0:
|
if tagDiff == 0:
|
||||||
if zeroRetryLimit > 0:
|
if zeroRetryLimit > 0:
|
||||||
zeroRetryLimit = zeroRetryLimit - 1
|
zeroRetryLimit = zeroRetryLimit - 1
|
||||||
addTagDiff = 1
|
addTagDiff = 1
|
||||||
else:
|
else:
|
||||||
printLog(log, "FAIL Retry limit reached!")
|
printLog(log, "FAIL Retry limit reached!")
|
||||||
else:
|
else:
|
||||||
addTagDiff = 1
|
addTagDiff = 1
|
||||||
os.remove(maxRunningTagFile)
|
os.remove(maxRunningTagFile)
|
||||||
printLog(log, "Exported " + str(tagDiff) + " .max files!")
|
printLog(log, "Exported " + str(tagDiff) + " .max files!")
|
||||||
tagDiff += addTagDiff
|
tagDiff += addTagDiff
|
||||||
os.remove(scriptDst)
|
os.remove(scriptDst)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
shutil.move("temp_log.log", "log.log")
|
shutil.move("temp_log.log", "log.log")
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,68 +1,68 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 2_build.py
|
# \file 2_build.py
|
||||||
# \brief Build clodbank
|
# \brief Build clodbank
|
||||||
# \date 2009-03-10 13:13GMT
|
# \date 2009-03-10 13:13GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Build clodbank
|
# Build clodbank
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Build clodbank")
|
printLog(log, "--- Build clodbank")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# Find tools
|
# Find tools
|
||||||
BuildClodBank = findTool(log, ToolDirectories, BuildClodBankTool, ToolSuffix)
|
BuildClodBank = findTool(log, ToolDirectories, BuildClodBankTool, ToolSuffix)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# Build clodbank
|
# Build clodbank
|
||||||
printLog(log, ">>> Build clodbank <<<")
|
printLog(log, ">>> Build clodbank <<<")
|
||||||
if BuildClodBank == "":
|
if BuildClodBank == "":
|
||||||
toolLogFail(log, BuildClodBankTool, ToolSuffix)
|
toolLogFail(log, BuildClodBankTool, ToolSuffix)
|
||||||
else:
|
else:
|
||||||
srcDir = ExportBuildDirectory + "/" + ClodExportDirectory
|
srcDir = ExportBuildDirectory + "/" + ClodExportDirectory
|
||||||
mkPath(log, srcDir)
|
mkPath(log, srcDir)
|
||||||
destDir = ExportBuildDirectory + "/" + ClodBankBuildDirectory
|
destDir = ExportBuildDirectory + "/" + ClodBankBuildDirectory
|
||||||
mkPath(log, destDir)
|
mkPath(log, destDir)
|
||||||
mkPath(log, ActiveProjectDirectory + "/generated")
|
mkPath(log, ActiveProjectDirectory + "/generated")
|
||||||
destFile = destDir + "/" + ClodBankFileName
|
destFile = destDir + "/" + ClodBankFileName
|
||||||
configFile = DatabaseDirectory + "/" + ClodConfigFile
|
configFile = DatabaseDirectory + "/" + ClodConfigFile
|
||||||
subprocess.call([ BuildClodBank, ActiveProjectDirectory + "/generated/clod_paths.cfg", configFile, destFile ])
|
subprocess.call([ BuildClodBank, ActiveProjectDirectory + "/generated/clod_paths.cfg", configFile, destFile ])
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,57 +1,57 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 3_install.py
|
# \file 3_install.py
|
||||||
# \brief Install clodbank
|
# \brief Install clodbank
|
||||||
# \date 2009-03-10 13:13GMT
|
# \date 2009-03-10 13:13GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Install clodbank
|
# Install clodbank
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite_local import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Install clodbank")
|
printLog(log, "--- Install clodbank")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
printLog(log, ">>> Install clodbank <<<")
|
printLog(log, ">>> Install clodbank <<<")
|
||||||
srcDir = ExportBuildDirectory + "/" + ClodBankBuildDirectory
|
srcDir = ExportBuildDirectory + "/" + ClodBankBuildDirectory
|
||||||
mkPath(log, srcDir)
|
mkPath(log, srcDir)
|
||||||
destDir = InstallDirectory + "/" + ShapeInstallDirectory
|
destDir = InstallDirectory + "/" + ShapeInstallDirectory
|
||||||
mkPath(log, destDir)
|
mkPath(log, destDir)
|
||||||
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,76 +1,76 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 0_setup.py
|
# \file 0_setup.py
|
||||||
# \brief setup copy
|
# \brief setup copy
|
||||||
# \date 2010-05-24 13:42GMT
|
# \date 2010-05-24 13:42GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Setup copy
|
# Setup copy
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Setup copy")
|
printLog(log, "--- Setup copy")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# Setup source directories
|
# Setup source directories
|
||||||
printLog(log, ">>> Setup source directories <<<")
|
printLog(log, ">>> Setup source directories <<<")
|
||||||
for dir in CopyDirectSourceDirectories:
|
for dir in CopyDirectSourceDirectories:
|
||||||
mkPath(log, dir)
|
mkPath(log, dir)
|
||||||
for file in CopyDirectSourceFiles:
|
for file in CopyDirectSourceFiles:
|
||||||
mkPath(log, os.path.dirname(file))
|
mkPath(log, os.path.dirname(file))
|
||||||
for dir in CopyLeveldesignSourceDirectories:
|
for dir in CopyLeveldesignSourceDirectories:
|
||||||
mkPath(log, LeveldesignDirectory + "/" + dir)
|
mkPath(log, LeveldesignDirectory + "/" + dir)
|
||||||
for file in CopyLeveldesignSourceFiles:
|
for file in CopyLeveldesignSourceFiles:
|
||||||
mkPath(log, os.path.dirname(LeveldesignDirectory + "/" + file))
|
mkPath(log, os.path.dirname(LeveldesignDirectory + "/" + file))
|
||||||
for dir in CopyLeveldesignWorldSourceDirectories:
|
for dir in CopyLeveldesignWorldSourceDirectories:
|
||||||
mkPath(log, LeveldesignWorldDirectory + "/" + dir)
|
mkPath(log, LeveldesignWorldDirectory + "/" + dir)
|
||||||
for file in CopyLeveldesignWorldSourceFiles:
|
for file in CopyLeveldesignWorldSourceFiles:
|
||||||
mkPath(log, os.path.dirname(LeveldesignWorldDirectory + "/" + file))
|
mkPath(log, os.path.dirname(LeveldesignWorldDirectory + "/" + file))
|
||||||
for dir in CopyLeveldesignDfnSourceDirectories:
|
for dir in CopyLeveldesignDfnSourceDirectories:
|
||||||
mkPath(log, LeveldesignDfnDirectory + "/" + dir)
|
mkPath(log, LeveldesignDfnDirectory + "/" + dir)
|
||||||
for file in CopyLeveldesignDfnSourceFiles:
|
for file in CopyLeveldesignDfnSourceFiles:
|
||||||
mkPath(log, os.path.dirname(LeveldesignDfnDirectory + "/" + file))
|
mkPath(log, os.path.dirname(LeveldesignDfnDirectory + "/" + file))
|
||||||
for dir in CopyDatabaseSourceDirectories:
|
for dir in CopyDatabaseSourceDirectories:
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
for file in CopyDatabaseSourceFiles:
|
for file in CopyDatabaseSourceFiles:
|
||||||
mkPath(log, os.path.dirname(DatabaseDirectory + "/" + file))
|
mkPath(log, os.path.dirname(DatabaseDirectory + "/" + file))
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, InstallDirectory + "/" + CopyInstallDirectory)
|
mkPath(log, InstallDirectory + "/" + CopyInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,49 +1,49 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 1_export.py
|
# \file 1_export.py
|
||||||
# \brief Export copy
|
# \brief Export copy
|
||||||
# \date 2010-05-24 13:42GMT
|
# \date 2010-05-24 13:42GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Export copy
|
# Export copy
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Export copy")
|
printLog(log, "--- Export copy")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,49 +1,49 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 2_build.py
|
# \file 2_build.py
|
||||||
# \brief Build copy
|
# \brief Build copy
|
||||||
# \date 2010-05-24 13:42GMT
|
# \date 2010-05-24 13:42GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Build copy
|
# Build copy
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Build copy")
|
printLog(log, "--- Build copy")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,85 +1,85 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 3_install.py
|
# \file 3_install.py
|
||||||
# \brief Install copy
|
# \brief Install copy
|
||||||
# \date 2010-05-24 13:42GMT
|
# \date 2010-05-24 13:42GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Install copy
|
# Install copy
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite_local import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Install copy")
|
printLog(log, "--- Install copy")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
installPath = InstallDirectory + "/" + CopyInstallDirectory
|
installPath = InstallDirectory + "/" + CopyInstallDirectory
|
||||||
mkPath(log, installPath)
|
mkPath(log, installPath)
|
||||||
|
|
||||||
printLog(log, ">>> Install copy <<<")
|
printLog(log, ">>> Install copy <<<")
|
||||||
for dir in CopyDirectSourceDirectories:
|
for dir in CopyDirectSourceDirectories:
|
||||||
copyFilesRecursiveNoTreeIfNeeded(log, dir, installPath)
|
copyFilesRecursiveNoTreeIfNeeded(log, dir, installPath)
|
||||||
for file in CopyDirectSourceFiles:
|
for file in CopyDirectSourceFiles:
|
||||||
copyFileIfNeeded(log, file, installPath + "/" + os.path.basename(file))
|
copyFileIfNeeded(log, file, installPath + "/" + os.path.basename(file))
|
||||||
for dir in CopyLeveldesignSourceDirectories:
|
for dir in CopyLeveldesignSourceDirectories:
|
||||||
copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignDirectory + "/" + dir, installPath)
|
copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignDirectory + "/" + dir, installPath)
|
||||||
for file in CopyLeveldesignSourceFiles:
|
for file in CopyLeveldesignSourceFiles:
|
||||||
copyFileIfNeeded(log, LeveldesignDirectory + "/" + file, installPath + "/" + os.path.basename(file))
|
copyFileIfNeeded(log, LeveldesignDirectory + "/" + file, installPath + "/" + os.path.basename(file))
|
||||||
for dir in CopyLeveldesignWorldSourceDirectories:
|
for dir in CopyLeveldesignWorldSourceDirectories:
|
||||||
copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignWorldDirectory + "/" + dir, installPath)
|
copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignWorldDirectory + "/" + dir, installPath)
|
||||||
for file in CopyLeveldesignWorldSourceFiles:
|
for file in CopyLeveldesignWorldSourceFiles:
|
||||||
copyFileIfNeeded(log, LeveldesignWorldDirectory + "/" + file, installPath + "/" + os.path.basename(file))
|
copyFileIfNeeded(log, LeveldesignWorldDirectory + "/" + file, installPath + "/" + os.path.basename(file))
|
||||||
for dir in CopyLeveldesignDfnSourceDirectories:
|
for dir in CopyLeveldesignDfnSourceDirectories:
|
||||||
copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignDfnDirectory + "/" + dir, installPath)
|
copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignDfnDirectory + "/" + dir, installPath)
|
||||||
for file in CopyLeveldesignDfnSourceFiles:
|
for file in CopyLeveldesignDfnSourceFiles:
|
||||||
copyFileIfNeeded(log, LeveldesignDfnDirectory + "/" + file, installPath + "/" + os.path.basename(file))
|
copyFileIfNeeded(log, LeveldesignDfnDirectory + "/" + file, installPath + "/" + os.path.basename(file))
|
||||||
for dir in CopyDatabaseSourceDirectories:
|
for dir in CopyDatabaseSourceDirectories:
|
||||||
copyFilesRecursiveNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, installPath)
|
copyFilesRecursiveNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, installPath)
|
||||||
for file in CopyDatabaseSourceFiles:
|
for file in CopyDatabaseSourceFiles:
|
||||||
copyFileIfNeeded(log, DatabaseDirectory + "/" + file, installPath + "/" + os.path.basename(file))
|
copyFileIfNeeded(log, DatabaseDirectory + "/" + file, installPath + "/" + os.path.basename(file))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
CopyWindowsExeDllCfgSourceFiles
|
CopyWindowsExeDllCfgSourceFiles
|
||||||
except NameError:
|
except NameError:
|
||||||
CopyWindowsExeDllCfgSourceFiles = [ ]
|
CopyWindowsExeDllCfgSourceFiles = [ ]
|
||||||
for file in CopyWindowsExeDllCfgSourceFiles:
|
for file in CopyWindowsExeDllCfgSourceFiles:
|
||||||
filePath = findFileMultiDir(log, WindowsExeDllCfgDirectories, file)
|
filePath = findFileMultiDir(log, WindowsExeDllCfgDirectories, file)
|
||||||
if (filePath != ""):
|
if (filePath != ""):
|
||||||
copyFileIfNeeded(log, filePath, installPath + "/" + os.path.basename(file))
|
copyFileIfNeeded(log, filePath, installPath + "/" + os.path.basename(file))
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,65 +1,65 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 0_setup.py
|
# \file 0_setup.py
|
||||||
# \brief Setup displace
|
# \brief Setup displace
|
||||||
# \date 2009-03-10-21-45-GMT
|
# \date 2009-03-10-21-45-GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Setup displace
|
# Setup displace
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Setup displace")
|
printLog(log, "--- Setup displace")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# Setup source directories
|
# Setup source directories
|
||||||
printLog(log, ">>> Setup source directories <<<")
|
printLog(log, ">>> Setup source directories <<<")
|
||||||
for dir in DisplaceSourceDirectories:
|
for dir in DisplaceSourceDirectories:
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
|
||||||
# Setup export directories
|
# Setup export directories
|
||||||
printLog(log, ">>> Setup export directories <<<")
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + DisplaceExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + DisplaceExportDirectory)
|
||||||
|
|
||||||
# Setup build directories
|
# Setup build directories
|
||||||
printLog(log, ">>> Setup build directories <<<")
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, InstallDirectory + "/" + DisplaceInstallDirectory)
|
mkPath(log, InstallDirectory + "/" + DisplaceInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
@ -1,55 +1,55 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# \file 1_export.py
|
# \file 1_export.py
|
||||||
# \brief Export displace
|
# \brief Export displace
|
||||||
# \date 2009-03-10-21-45-GMT
|
# \date 2009-03-10-21-45-GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Export displace
|
# Export displace
|
||||||
#
|
#
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
# Copyright (C) 2009-2014 by authors
|
# Copyright (C) 2009-2014 by authors
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
# License, or (at your option) any later version.
|
# License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
sys.path.append("../../configuration")
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
if os.path.isfile("log.log"):
|
if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
from process import *
|
from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Export displace")
|
printLog(log, "--- Export displace")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
mkPath(log, ExportBuildDirectory + "/" + DisplaceExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + DisplaceExportDirectory)
|
||||||
for dir in DisplaceSourceDirectories:
|
for dir in DisplaceSourceDirectories:
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + DisplaceExportDirectory, ".tga")
|
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + DisplaceExportDirectory, ".tga")
|
||||||
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + DisplaceExportDirectory, ".png")
|
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + DisplaceExportDirectory, ".png")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue