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
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Run all export processes
|
||||
# \date 2009-02-18 09:22GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all export 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 - Export')
|
||||
# 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 *
|
||||
from buildsite import *
|
||||
from tools import *
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Run the export processes")
|
||||
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", "1_export.py", "--includeprocess" ] + args.includeprocess)
|
||||
elif not args.excludeprocess == None:
|
||||
subprocess.call([ "python", "1_export.py", "--excludeprocess" ] + args.excludeprocess)
|
||||
else:
|
||||
subprocess.call([ "python", "1_export.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, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("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.move("log.log", "1_export.log")
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Run all export processes
|
||||
# \date 2009-02-18 09:22GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all export 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 - Export')
|
||||
# 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 *
|
||||
from buildsite_local import *
|
||||
from tools import *
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Run the export processes")
|
||||
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", "1_export.py", "--includeprocess" ] + args.includeprocess)
|
||||
elif not args.excludeprocess == None:
|
||||
subprocess.call([ "python", "1_export.py", "--excludeprocess" ] + args.excludeprocess)
|
||||
else:
|
||||
subprocess.call([ "python", "1_export.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, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("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.move("log.log", "1_export.log")
|
||||
|
@ -1,94 +1,94 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 2_build.py
|
||||
# \brief Run all build processes
|
||||
# \date 2009-02-18 09:22GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all build 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 - Build')
|
||||
# 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 *
|
||||
from buildsite import *
|
||||
from tools import *
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Run the build processes")
|
||||
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", "2_build.py", "--includeprocess" ] + args.includeprocess)
|
||||
elif not args.excludeprocess == None:
|
||||
subprocess.call([ "python", "2_build.py", "--excludeprocess" ] + args.excludeprocess)
|
||||
else:
|
||||
subprocess.call([ "python", "2_build.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, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("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.move("log.log", "2_build.log")
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 2_build.py
|
||||
# \brief Run all build processes
|
||||
# \date 2009-02-18 09:22GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all build 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 - Build')
|
||||
# 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 *
|
||||
from buildsite_local import *
|
||||
from tools import *
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Run the build processes")
|
||||
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", "2_build.py", "--includeprocess" ] + args.includeprocess)
|
||||
elif not args.excludeprocess == None:
|
||||
subprocess.call([ "python", "2_build.py", "--excludeprocess" ] + args.excludeprocess)
|
||||
else:
|
||||
subprocess.call([ "python", "2_build.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, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("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.move("log.log", "2_build.log")
|
||||
|
@ -1,94 +1,94 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 3_install.py
|
||||
# \brief Run all install processes
|
||||
# \date 2009-02-18 16:19GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all install 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 - Install')
|
||||
# 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 *
|
||||
from buildsite import *
|
||||
from tools import *
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Run the install processes")
|
||||
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", "3_install.py", "--includeprocess" ] + args.includeprocess)
|
||||
elif not args.excludeprocess == None:
|
||||
subprocess.call([ "python", "3_install.py", "--excludeprocess" ] + args.excludeprocess)
|
||||
else:
|
||||
subprocess.call([ "python", "3_install.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, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("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.move("log.log", "3_install.log")
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 3_install.py
|
||||
# \brief Run all install processes
|
||||
# \date 2009-02-18 16:19GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all install 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 - Install')
|
||||
# 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 *
|
||||
from buildsite_local import *
|
||||
from tools import *
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Run the install processes")
|
||||
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", "3_install.py", "--includeprocess" ] + args.includeprocess)
|
||||
elif not args.excludeprocess == None:
|
||||
subprocess.call([ "python", "3_install.py", "--excludeprocess" ] + args.excludeprocess)
|
||||
else:
|
||||
subprocess.call([ "python", "3_install.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, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("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.move("log.log", "3_install.log")
|
||||
|
@ -1,181 +1,181 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 9_upload.py
|
||||
# \brief Upload data to servers
|
||||
# \date 2009-02-18 16:19GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Game data build pipeline.
|
||||
# Upload data to servers
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2011 Kaetemi
|
||||
#
|
||||
# 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 tools import *
|
||||
|
||||
try:
|
||||
from upload import *
|
||||
except ImportError:
|
||||
# Not documenting this. Because we can.
|
||||
printLog(log, "ERROR Upload not configured, bye.")
|
||||
exit()
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Upload data to servers")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
# Find tools
|
||||
# Not documenting this. Because we can.
|
||||
Psftp = findFileMultiDir(log, ToolDirectories + WindowsExeDllCfgDirectories, UploadPsftpTool)
|
||||
printLog(log, "PSFTP " + Psftp)
|
||||
|
||||
def downloadVersionTag(server, user, sshkey, dir):
|
||||
if os.path.isfile("upload.tag"):
|
||||
os.remove("upload.tag")
|
||||
if os.path.isfile("upload.batch"):
|
||||
os.remove("upload.batch")
|
||||
ub = open("upload.batch", "w")
|
||||
ub.write("cd " + dir + "\n")
|
||||
ub.write("get upload.tag upload.tag\n")
|
||||
ub.write("quit\n")
|
||||
ub.close()
|
||||
subprocess.call([ Psftp, "-b", "upload.batch", "-i", sshkey, user + "@" + server ])
|
||||
os.remove("upload.batch")
|
||||
if os.path.isfile("upload.tag"):
|
||||
ft = open("upload.tag")
|
||||
result = float(ft.read()) # float, really
|
||||
ft.close()
|
||||
os.remove("upload.tag")
|
||||
printLog(log, "INFO Upload tag is " + str(result))
|
||||
return result
|
||||
else:
|
||||
printLog(log, "WARNING Upload tag not found, uploading everything")
|
||||
return 0
|
||||
|
||||
def isDirectoryNeeded(ft, dir):
|
||||
files = os.listdir(dir)
|
||||
for fileName in files:
|
||||
if isLegalFileName(fileName):
|
||||
fileFull = dir + "/" + fileName
|
||||
if os.path.isfile(fileFull):
|
||||
nftf = os.stat(fileFull).st_mtime
|
||||
if nftf > ft:
|
||||
return True
|
||||
elif os.path.isdir(fileFull):
|
||||
if isDirectoryNeeded(ft, fileFull):
|
||||
return True
|
||||
elif not os.path.isdir(fileFull):
|
||||
printLog(log, "isDirectoryNeeded: file not dir or file?!" + fileFull)
|
||||
return False
|
||||
|
||||
def listDirectoryUpload(ft, ub, udb, dir):
|
||||
nft = 0
|
||||
files = os.listdir(dir)
|
||||
for fileName in files:
|
||||
if isLegalFileName(fileName):
|
||||
fileFull = dir + "/" + fileName
|
||||
if os.path.isfile(fileFull):
|
||||
nftf = os.stat(fileFull).st_mtime
|
||||
if nftf > ft:
|
||||
ub.write("put " + fileFull + " " + fileName + "\n")
|
||||
if nftf > nft:
|
||||
nft = nftf
|
||||
elif os.path.isdir(fileFull):
|
||||
if isDirectoryNeeded(ft, fileFull):
|
||||
udb.write("mkdir " + fileName + "\n")
|
||||
ub.write("cd " + fileName + "\n")
|
||||
udb.write("cd " + fileName + "\n")
|
||||
nft2 = listDirectoryUpload(ft, ub, udb, fileFull)
|
||||
if (nft2 > nft):
|
||||
nft = nft2
|
||||
ub.write("cd ..\n")
|
||||
udb.write("cd ..\n")
|
||||
elif not os.path.isdir(fileFull):
|
||||
printLog(log, "listDirectoryUpload: file not dir or file?!" + fileFull)
|
||||
return nft
|
||||
|
||||
def uploadSftp(server, user, sshkey, dir_to, dir_from, addcmd):
|
||||
ft = downloadVersionTag(server, user, sshkey, dir_to)
|
||||
if isDirectoryNeeded(ft, dir_from):
|
||||
if os.path.isfile("upload_dir.batch"):
|
||||
os.remove("upload_dir.batch")
|
||||
if os.path.isfile("upload.batch"):
|
||||
os.remove("upload.batch")
|
||||
udb = open("upload_dir.batch", "w")
|
||||
udb.write("cd " + dir_to + "\n")
|
||||
ub = open("upload.batch", "w")
|
||||
ub.write("cd " + dir_to + "\n")
|
||||
for ac in addcmd:
|
||||
ub.write(ac + "\n")
|
||||
ftn = listDirectoryUpload(ft, ub, udb, dir_from)
|
||||
if (ft > ftn):
|
||||
ftn = ft
|
||||
nft = open("upload.tag", "w")
|
||||
nft.write(str(ftn))
|
||||
nft.close()
|
||||
ub.write("put upload.tag upload.tag\n")
|
||||
ub.write("quit\n")
|
||||
ub.close()
|
||||
udb.write("quit\n")
|
||||
udb.close()
|
||||
subprocess.call([ Psftp, "-be", "-b", "upload_dir.batch", "-i", sshkey, user + "@" + server ])
|
||||
subprocess.call([ Psftp, "-b", "upload.batch", "-i", sshkey, user + "@" + server ])
|
||||
os.remove("upload_dir.batch")
|
||||
os.remove("upload.batch")
|
||||
os.remove("upload.tag")
|
||||
else:
|
||||
printLog(log, "SKIP " + dir_to)
|
||||
|
||||
printLog(log, ">>> Upload patch <<<")
|
||||
for target in UploadPatch:
|
||||
uploadSftp(target[0], target[1], target[2], target[3], ClientPatchDirectory + "/patch", [ ])
|
||||
|
||||
printLog(log, ">>> Upload data_shard <<<")
|
||||
for target in UploadShard:
|
||||
uploadSftp(target[0], target[1], target[2], target[3], DataShardDirectory, [ "rm *.packed_sheets", "rm primitive_cache/*.binprim" ])
|
||||
|
||||
printLog(log, ">>> Upload data_common <<<")
|
||||
for target in UploadCommon:
|
||||
uploadSftp(target[0], target[1], target[2], target[3], DataCommonDirectory, [ ])
|
||||
|
||||
printLog(log, ">>> Upload data_leveldesign/leveldesign <<<")
|
||||
for target in UploadLeveldesign:
|
||||
uploadSftp(target[0], target[1], target[2], target[3], LeveldesignDirectory, [ ])
|
||||
|
||||
printLog(log, ">>> Upload data_leveldesign/primitives <<<")
|
||||
for target in UploadPrimitives:
|
||||
uploadSftp(target[0], target[1], target[2], target[3], PrimitivesDirectory, [ ])
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("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.move("log.log", "9_upload.log")
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 9_upload.py
|
||||
# \brief Upload data to servers
|
||||
# \date 2009-02-18 16:19GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Game data build pipeline.
|
||||
# Upload data to servers
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2011 Kaetemi
|
||||
#
|
||||
# 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 tools import *
|
||||
|
||||
try:
|
||||
from upload import *
|
||||
except ImportError:
|
||||
# Not documenting this. Because we can.
|
||||
printLog(log, "ERROR Upload not configured, bye.")
|
||||
exit()
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Upload data to servers")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
# Find tools
|
||||
# Not documenting this. Because we can.
|
||||
Psftp = findFileMultiDir(log, ToolDirectories + WindowsExeDllCfgDirectories, UploadPsftpTool)
|
||||
printLog(log, "PSFTP " + Psftp)
|
||||
|
||||
def downloadVersionTag(server, user, sshkey, dir):
|
||||
if os.path.isfile("upload.tag"):
|
||||
os.remove("upload.tag")
|
||||
if os.path.isfile("upload.batch"):
|
||||
os.remove("upload.batch")
|
||||
ub = open("upload.batch", "w")
|
||||
ub.write("cd " + dir + "\n")
|
||||
ub.write("get upload.tag upload.tag\n")
|
||||
ub.write("quit\n")
|
||||
ub.close()
|
||||
subprocess.call([ Psftp, "-b", "upload.batch", "-i", sshkey, user + "@" + server ])
|
||||
os.remove("upload.batch")
|
||||
if os.path.isfile("upload.tag"):
|
||||
ft = open("upload.tag")
|
||||
result = float(ft.read()) # float, really
|
||||
ft.close()
|
||||
os.remove("upload.tag")
|
||||
printLog(log, "INFO Upload tag is " + str(result))
|
||||
return result
|
||||
else:
|
||||
printLog(log, "WARNING Upload tag not found, uploading everything")
|
||||
return 0
|
||||
|
||||
def isDirectoryNeeded(ft, dir):
|
||||
files = os.listdir(dir)
|
||||
for fileName in files:
|
||||
if isLegalFileName(fileName):
|
||||
fileFull = dir + "/" + fileName
|
||||
if os.path.isfile(fileFull):
|
||||
nftf = os.stat(fileFull).st_mtime
|
||||
if nftf > ft:
|
||||
return True
|
||||
elif os.path.isdir(fileFull):
|
||||
if isDirectoryNeeded(ft, fileFull):
|
||||
return True
|
||||
elif not os.path.isdir(fileFull):
|
||||
printLog(log, "isDirectoryNeeded: file not dir or file?!" + fileFull)
|
||||
return False
|
||||
|
||||
def listDirectoryUpload(ft, ub, udb, dir):
|
||||
nft = 0
|
||||
files = os.listdir(dir)
|
||||
for fileName in files:
|
||||
if isLegalFileName(fileName):
|
||||
fileFull = dir + "/" + fileName
|
||||
if os.path.isfile(fileFull):
|
||||
nftf = os.stat(fileFull).st_mtime
|
||||
if nftf > ft:
|
||||
ub.write("put " + fileFull + " " + fileName + "\n")
|
||||
if nftf > nft:
|
||||
nft = nftf
|
||||
elif os.path.isdir(fileFull):
|
||||
if isDirectoryNeeded(ft, fileFull):
|
||||
udb.write("mkdir " + fileName + "\n")
|
||||
ub.write("cd " + fileName + "\n")
|
||||
udb.write("cd " + fileName + "\n")
|
||||
nft2 = listDirectoryUpload(ft, ub, udb, fileFull)
|
||||
if (nft2 > nft):
|
||||
nft = nft2
|
||||
ub.write("cd ..\n")
|
||||
udb.write("cd ..\n")
|
||||
elif not os.path.isdir(fileFull):
|
||||
printLog(log, "listDirectoryUpload: file not dir or file?!" + fileFull)
|
||||
return nft
|
||||
|
||||
def uploadSftp(server, user, sshkey, dir_to, dir_from, addcmd):
|
||||
ft = downloadVersionTag(server, user, sshkey, dir_to)
|
||||
if isDirectoryNeeded(ft, dir_from):
|
||||
if os.path.isfile("upload_dir.batch"):
|
||||
os.remove("upload_dir.batch")
|
||||
if os.path.isfile("upload.batch"):
|
||||
os.remove("upload.batch")
|
||||
udb = open("upload_dir.batch", "w")
|
||||
udb.write("cd " + dir_to + "\n")
|
||||
ub = open("upload.batch", "w")
|
||||
ub.write("cd " + dir_to + "\n")
|
||||
for ac in addcmd:
|
||||
ub.write(ac + "\n")
|
||||
ftn = listDirectoryUpload(ft, ub, udb, dir_from)
|
||||
if (ft > ftn):
|
||||
ftn = ft
|
||||
nft = open("upload.tag", "w")
|
||||
nft.write(str(ftn))
|
||||
nft.close()
|
||||
ub.write("put upload.tag upload.tag\n")
|
||||
ub.write("quit\n")
|
||||
ub.close()
|
||||
udb.write("quit\n")
|
||||
udb.close()
|
||||
subprocess.call([ Psftp, "-be", "-b", "upload_dir.batch", "-i", sshkey, user + "@" + server ])
|
||||
subprocess.call([ Psftp, "-b", "upload.batch", "-i", sshkey, user + "@" + server ])
|
||||
os.remove("upload_dir.batch")
|
||||
os.remove("upload.batch")
|
||||
os.remove("upload.tag")
|
||||
else:
|
||||
printLog(log, "SKIP " + dir_to)
|
||||
|
||||
printLog(log, ">>> Upload patch <<<")
|
||||
for target in UploadPatch:
|
||||
uploadSftp(target[0], target[1], target[2], target[3], ClientPatchDirectory + "/patch", [ ])
|
||||
|
||||
printLog(log, ">>> Upload data_shard <<<")
|
||||
for target in UploadShard:
|
||||
uploadSftp(target[0], target[1], target[2], target[3], DataShardDirectory, [ "rm *.packed_sheets", "rm primitive_cache/*.binprim" ])
|
||||
|
||||
printLog(log, ">>> Upload data_common <<<")
|
||||
for target in UploadCommon:
|
||||
uploadSftp(target[0], target[1], target[2], target[3], DataCommonDirectory, [ ])
|
||||
|
||||
printLog(log, ">>> Upload data_leveldesign/leveldesign <<<")
|
||||
for target in UploadLeveldesign:
|
||||
uploadSftp(target[0], target[1], target[2], target[3], LeveldesignDirectory, [ ])
|
||||
|
||||
printLog(log, ">>> Upload data_leveldesign/primitives <<<")
|
||||
for target in UploadPrimitives:
|
||||
uploadSftp(target[0], target[1], target[2], target[3], PrimitivesDirectory, [ ])
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("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.move("log.log", "9_upload.log")
|
||||
|
@ -1,74 +1,74 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file a1_worldedit_data.py
|
||||
# \brief Install worldedit data
|
||||
# \date 2014-09-10 14:01GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install worldedit data
|
||||
#
|
||||
# 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")
|
||||
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from tools import *
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Install worldedit data")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
for ecosystem in WorldEditEcosystems:
|
||||
ecosystemName = ecosystem[0]
|
||||
srcZoneLigos = ExportBuildDirectory + "/ecosystems/" + ecosystemName + "/ligo_es/zoneligos/"
|
||||
dstZoneLigos = WorldEditInstallDirectory + "/" + ecosystemName + "/zoneligos/"
|
||||
mkPath(log, srcZoneLigos)
|
||||
mkPath(log, dstZoneLigos)
|
||||
copyFilesNoTreeIfNeeded(log, srcZoneLigos, dstZoneLigos)
|
||||
srcZoneBitmaps = DatabaseDirectory + "/landscape/ligo/" + ecosystemName + "/zonebitmaps/"
|
||||
dstZoneBitmaps = WorldEditInstallDirectory + "/" + ecosystemName + "/zonebitmaps/"
|
||||
mkPath(log, srcZoneBitmaps)
|
||||
mkPath(log, dstZoneBitmaps)
|
||||
copyFilesExtNoTreeIfNeeded(log, srcZoneBitmaps, dstZoneBitmaps, ".tga")
|
||||
copyFilesExtNoTreeIfNeeded(log, srcZoneBitmaps, dstZoneBitmaps, ".png")
|
||||
dstCollisionMap = WorldEditInstallDirectory + "/" + ecosystemName + "/collisionmap/"
|
||||
mkPath(log, dstCollisionMap)
|
||||
for continentName in ecosystem[1]:
|
||||
srcCollisionMap = ExportBuildDirectory + "/continents/" + continentName + "/ai_wmap/"
|
||||
mkPath(log, srcCollisionMap)
|
||||
copyFilesExtNoTreeIfNeeded(log, srcCollisionMap, dstCollisionMap, ".tga")
|
||||
copyFilesExtNoTreeIfNeeded(log, srcCollisionMap, dstCollisionMap, ".png")
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("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.move("log.log", "a1_worldedit_data.log")
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file a1_worldedit_data.py
|
||||
# \brief Install worldedit data
|
||||
# \date 2014-09-10 14:01GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install worldedit data
|
||||
#
|
||||
# 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")
|
||||
|
||||
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 worldedit data")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
for ecosystem in WorldEditEcosystems:
|
||||
ecosystemName = ecosystem[0]
|
||||
srcZoneLigos = ExportBuildDirectory + "/ecosystems/" + ecosystemName + "/ligo_es/zoneligos/"
|
||||
dstZoneLigos = WorldEditInstallDirectory + "/" + ecosystemName + "/zoneligos/"
|
||||
mkPath(log, srcZoneLigos)
|
||||
mkPath(log, dstZoneLigos)
|
||||
copyFilesNoTreeIfNeeded(log, srcZoneLigos, dstZoneLigos)
|
||||
srcZoneBitmaps = DatabaseDirectory + "/landscape/ligo/" + ecosystemName + "/zonebitmaps/"
|
||||
dstZoneBitmaps = WorldEditInstallDirectory + "/" + ecosystemName + "/zonebitmaps/"
|
||||
mkPath(log, srcZoneBitmaps)
|
||||
mkPath(log, dstZoneBitmaps)
|
||||
copyFilesExtNoTreeIfNeeded(log, srcZoneBitmaps, dstZoneBitmaps, ".tga")
|
||||
copyFilesExtNoTreeIfNeeded(log, srcZoneBitmaps, dstZoneBitmaps, ".png")
|
||||
dstCollisionMap = WorldEditInstallDirectory + "/" + ecosystemName + "/collisionmap/"
|
||||
mkPath(log, dstCollisionMap)
|
||||
for continentName in ecosystem[1]:
|
||||
srcCollisionMap = ExportBuildDirectory + "/continents/" + continentName + "/ai_wmap/"
|
||||
mkPath(log, srcCollisionMap)
|
||||
copyFilesExtNoTreeIfNeeded(log, srcCollisionMap, dstCollisionMap, ".tga")
|
||||
copyFilesExtNoTreeIfNeeded(log, srcCollisionMap, dstCollisionMap, ".png")
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("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.move("log.log", "a1_worldedit_data.log")
|
||||
|
@ -1,93 +1,93 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file b2_shard_data.py
|
||||
# \brief Install shard data
|
||||
# \date 2009-02-18 16:19GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install shard data
|
||||
#
|
||||
# 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 tools import *
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Install shard data")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
for dir in InstallShardDataDirectories:
|
||||
printLog(log, "SHARD PACKAGE " + dir)
|
||||
mkPath(log, ShardInstallDirectory + "/" + dir)
|
||||
printLog(log, "FROM " + dir)
|
||||
mkPath(log, InstallDirectory + "/" + dir)
|
||||
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + dir, ShardInstallDirectory + "/" + dir)
|
||||
for package in InstallShardDataFiles:
|
||||
dstDir = package[0]
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
||||
printLog(log, "SHARD PACKAGE " + dstDir)
|
||||
copyFileListNoTreeIfNeeded(log, InstallDirectory, ShardInstallDirectory + "/" + dstDir, package[1])
|
||||
for multiDir in InstallShardDataMultiDirectories:
|
||||
dstDir = multiDir[0]
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
||||
printLog(log, "SHARD PACKAGE " + dstDir)
|
||||
for srcDir in multiDir[1]:
|
||||
printLog(log, "FROM " + srcDir)
|
||||
mkPath(log, InstallDirectory + "/" + srcDir)
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
||||
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + srcDir, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
||||
for multiDir in InstallShardDataPrimitivesDirectories:
|
||||
dstDir = multiDir[0]
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
||||
printLog(log, "SHARD PACKAGE " + dstDir)
|
||||
for srcDir in multiDir[1]:
|
||||
printLog(log, "FROM PRIMITIVES " + srcDir)
|
||||
mkPath(log, PrimitivesDirectory + "/" + srcDir)
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
||||
copyFilesNoTreeIfNeeded(log, PrimitivesDirectory + "/" + srcDir, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
||||
for execDir in InstallShardDataExecutables:
|
||||
dstDir = execDir[0]
|
||||
mkPath(log, LinuxServiceExecutableDirectory)
|
||||
mkPath(log, PatchmanCfgDefaultDirectory)
|
||||
mkPath(log, InstallDirectory)
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
||||
printLog(log, "SHARD PACKAGE " + dstDir)
|
||||
copyFileIfNeeded(log, LinuxServiceExecutableDirectory + "/" + execDir[1][1], ShardInstallDirectory + "/" + dstDir + "/" + execDir[1][0])
|
||||
copyFileListNoTreeIfNeeded(log, PatchmanCfgDefaultDirectory, ShardInstallDirectory + "/" + dstDir, execDir[2])
|
||||
copyFileListNoTreeIfNeeded(log, InstallDirectory, ShardInstallDirectory + "/" + dstDir, execDir[3])
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("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.move("log.log", "b2_shard_data.log")
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file b2_shard_data.py
|
||||
# \brief Install shard data
|
||||
# \date 2009-02-18 16:19GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install shard data
|
||||
#
|
||||
# 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 tools import *
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Install shard data")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
for dir in InstallShardDataDirectories:
|
||||
printLog(log, "SHARD PACKAGE " + dir)
|
||||
mkPath(log, ShardInstallDirectory + "/" + dir)
|
||||
printLog(log, "FROM " + dir)
|
||||
mkPath(log, InstallDirectory + "/" + dir)
|
||||
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + dir, ShardInstallDirectory + "/" + dir)
|
||||
for package in InstallShardDataFiles:
|
||||
dstDir = package[0]
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
||||
printLog(log, "SHARD PACKAGE " + dstDir)
|
||||
copyFileListNoTreeIfNeeded(log, InstallDirectory, ShardInstallDirectory + "/" + dstDir, package[1])
|
||||
for multiDir in InstallShardDataMultiDirectories:
|
||||
dstDir = multiDir[0]
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
||||
printLog(log, "SHARD PACKAGE " + dstDir)
|
||||
for srcDir in multiDir[1]:
|
||||
printLog(log, "FROM " + srcDir)
|
||||
mkPath(log, InstallDirectory + "/" + srcDir)
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
||||
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + srcDir, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
||||
for multiDir in InstallShardDataPrimitivesDirectories:
|
||||
dstDir = multiDir[0]
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
||||
printLog(log, "SHARD PACKAGE " + dstDir)
|
||||
for srcDir in multiDir[1]:
|
||||
printLog(log, "FROM PRIMITIVES " + srcDir)
|
||||
mkPath(log, PrimitivesDirectory + "/" + srcDir)
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
||||
copyFilesNoTreeIfNeeded(log, PrimitivesDirectory + "/" + srcDir, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
||||
for execDir in InstallShardDataExecutables:
|
||||
dstDir = execDir[0]
|
||||
mkPath(log, LinuxServiceExecutableDirectory)
|
||||
mkPath(log, PatchmanCfgDefaultDirectory)
|
||||
mkPath(log, InstallDirectory)
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
||||
printLog(log, "SHARD PACKAGE " + dstDir)
|
||||
copyFileIfNeeded(log, LinuxServiceExecutableDirectory + "/" + execDir[1][1], ShardInstallDirectory + "/" + dstDir + "/" + execDir[1][0])
|
||||
copyFileListNoTreeIfNeeded(log, PatchmanCfgDefaultDirectory, ShardInstallDirectory + "/" + dstDir, execDir[2])
|
||||
copyFileListNoTreeIfNeeded(log, InstallDirectory, ShardInstallDirectory + "/" + dstDir, execDir[3])
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("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.move("log.log", "b2_shard_data.log")
|
||||
|
@ -1,86 +1,86 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file d2_client_install.py
|
||||
# \brief Install to client install
|
||||
# \date 2009-02-18 16:19GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install to client install
|
||||
#
|
||||
# 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 tools import *
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Install to client install")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
for category in InstallClientData:
|
||||
printLog(log, "CATEGORY " + category["Name"])
|
||||
packExt = ".bnp"
|
||||
if (category["StreamedPackages"]):
|
||||
packExt = ".snp"
|
||||
if (category["UnpackTo"] != None):
|
||||
targetPath = ClientInstallDirectory
|
||||
if (category["UnpackTo"] != ""):
|
||||
targetPath += "/" + category["UnpackTo"]
|
||||
mkPath(log, targetPath)
|
||||
for package in category["Packages"]:
|
||||
printLog(log, "PACKAGE " + package[0])
|
||||
mkPath(log, InstallDirectory + "/" + package[0])
|
||||
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + package[0], targetPath)
|
||||
else:
|
||||
sourcePath = ClientPatchDirectory + "/bnp"
|
||||
targetPath = ClientInstallDirectory + "/data"
|
||||
mkPath(log, targetPath)
|
||||
for package in category["Packages"]:
|
||||
printLog(log, "PACKAGE " + package[0])
|
||||
sourceBnp = sourcePath + "/" + package[0] + packExt
|
||||
targetBnp = targetPath + "/" + package[0] + packExt
|
||||
if (len(package[1]) > 0):
|
||||
sourceBnp = sourcePath + "/" + package[1][0]
|
||||
targetBnp = targetPath + "/" + package[1][0]
|
||||
printLog(log, "TARGET " + package[1][0])
|
||||
copyFileIfNeeded(log, sourceBnp, targetBnp)
|
||||
for ref in category["Refs"]:
|
||||
printLog(log, "REFERENCE " + ref)
|
||||
sourceRef = sourcePath + "/" + ref + "_.ref"
|
||||
targetRef = targetPath + "/" + ref + "_.ref"
|
||||
copyFileIfNeeded(log, sourceRef, targetRef)
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("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.move("log.log", "d2_client_install.log")
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file d2_client_install.py
|
||||
# \brief Install to client install
|
||||
# \date 2009-02-18 16:19GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install to client install
|
||||
#
|
||||
# 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 tools import *
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Install to client install")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
for category in InstallClientData:
|
||||
printLog(log, "CATEGORY " + category["Name"])
|
||||
packExt = ".bnp"
|
||||
if (category["StreamedPackages"]):
|
||||
packExt = ".snp"
|
||||
if (category["UnpackTo"] != None):
|
||||
targetPath = ClientInstallDirectory
|
||||
if (category["UnpackTo"] != ""):
|
||||
targetPath += "/" + category["UnpackTo"]
|
||||
mkPath(log, targetPath)
|
||||
for package in category["Packages"]:
|
||||
printLog(log, "PACKAGE " + package[0])
|
||||
mkPath(log, InstallDirectory + "/" + package[0])
|
||||
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + package[0], targetPath)
|
||||
else:
|
||||
sourcePath = ClientPatchDirectory + "/bnp"
|
||||
targetPath = ClientInstallDirectory + "/data"
|
||||
mkPath(log, targetPath)
|
||||
for package in category["Packages"]:
|
||||
printLog(log, "PACKAGE " + package[0])
|
||||
sourceBnp = sourcePath + "/" + package[0] + packExt
|
||||
targetBnp = targetPath + "/" + package[0] + packExt
|
||||
if (len(package[1]) > 0):
|
||||
sourceBnp = sourcePath + "/" + package[1][0]
|
||||
targetBnp = targetPath + "/" + package[1][0]
|
||||
printLog(log, "TARGET " + package[1][0])
|
||||
copyFileIfNeeded(log, sourceBnp, targetBnp)
|
||||
for ref in category["Refs"]:
|
||||
printLog(log, "REFERENCE " + ref)
|
||||
sourceRef = sourcePath + "/" + ref + "_.ref"
|
||||
targetRef = targetPath + "/" + ref + "_.ref"
|
||||
copyFileIfNeeded(log, sourceRef, targetRef)
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("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.move("log.log", "d2_client_install.log")
|
||||
|
@ -1,32 +1,32 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file export_build_install.py
|
||||
# \brief Run all processes
|
||||
# \date 2009-02-18 15:28GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all 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 shutil, subprocess
|
||||
|
||||
subprocess.call([ "python", "1_export.py" ])
|
||||
subprocess.call([ "python", "2_build.py" ])
|
||||
subprocess.call([ "python", "3_install.py" ])
|
||||
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file export_build_install.py
|
||||
# \brief Run all processes
|
||||
# \date 2009-02-18 15:28GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all 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 shutil, subprocess
|
||||
|
||||
subprocess.call([ "python", "1_export.py" ])
|
||||
subprocess.call([ "python", "2_build.py" ])
|
||||
subprocess.call([ "python", "3_install.py" ])
|
||||
|
||||
|
@ -1,220 +1,220 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# #################################################################
|
||||
# ## %PreGenWarning%
|
||||
# #################################################################
|
||||
#
|
||||
# \file directories.py
|
||||
# \brief Directories configuration
|
||||
# \date %PreGenDateTimeStamp%
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# \date 2001-2005
|
||||
# \author Nevrax
|
||||
# Python port of game data build pipeline.
|
||||
# Directories configuration for '%PreGenEcosystemName%' ecosystem.
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
|
||||
|
||||
# *** ECOSYSTEM AND CONTINENT NAMES ***
|
||||
|
||||
EcosystemName = "%PreGenEcosystemName%"
|
||||
EcosystemPath = "ecosystems/" + EcosystemName
|
||||
CommonName = EcosystemName
|
||||
CommonPath = EcosystemPath
|
||||
|
||||
DatabaseRootName = "%PreGenDatabaseRootName%"
|
||||
DatabaseRootPath = "stuff/" + DatabaseRootName
|
||||
|
||||
|
||||
# *** SOURCE DIRECTORIES IN THE DATABASE ***
|
||||
|
||||
# Shape directories
|
||||
ShapeSourceDirectories = [ ]
|
||||
ShapeSourceDirectories += [ DatabaseRootPath + "/decors/vegetations" ]
|
||||
ShapeSourceDirectories += [ "landscape/ligo/" + EcosystemName + "/max" ]
|
||||
|
||||
# Maps directories
|
||||
MapSourceDirectories = [ ]
|
||||
MapSourceDirectories += [ DatabaseRootPath + "/decors/_textures" ]
|
||||
%PreGenMapSubdirectories%MapSourceDirectories += [ "landscape/microveget/" + EcosystemName + "" ]
|
||||
MapSourceDirectories += [ "landscape/water/meshes/" + EcosystemName + "" ]
|
||||
|
||||
MapUncompressedSourceDirectories = [ ]
|
||||
|
||||
# Tiles directories
|
||||
TilesSourceDirectories = [ ]
|
||||
%PreGenTileSourceDirectories%
|
||||
# Tiles root directory
|
||||
TileRootSourceDirectory = "landscape/_texture_tiles/" + EcosystemName
|
||||
|
||||
# Displace directory
|
||||
DisplaceSourceDirectory = "landscape/_texture_tiles/" + EcosystemName + "/displace"
|
||||
|
||||
# Do not use, needs to be removed and fixed in processes
|
||||
DisplaceSourceDirectories = [ ]
|
||||
DisplaceSourceDirectories += [ DisplaceSourceDirectory ]
|
||||
|
||||
# Bank directory
|
||||
BankSourceDirectory = "landscape/_texture_tiles/" + EcosystemName
|
||||
|
||||
# Vegetable set directories
|
||||
VegetSetSourceDirectories = [ ]
|
||||
VegetSetSourceDirectories += [ "landscape/microveget/" + EcosystemName ]
|
||||
|
||||
# Veget directories
|
||||
VegetSourceDirectories = [ ]
|
||||
VegetSourceDirectories += [ "landscape/microveget/" + EcosystemName ]
|
||||
|
||||
# Ligo directories
|
||||
LigoBaseSourceDirectory = "landscape/ligo/" + EcosystemName
|
||||
LigoMaxSourceDirectory = LigoBaseSourceDirectory + "/max"
|
||||
|
||||
# Zone directories
|
||||
ZoneSourceDirectory = [ "landscape/zones/" + EcosystemName ] # For old snowballs style landscape when not using ligo
|
||||
|
||||
# Ig landscape directories
|
||||
IgLandSourceDirectory = "_invalid"
|
||||
|
||||
# Ig other directories
|
||||
IgOtherSourceDirectory = "_invalid"
|
||||
|
||||
# PACS primitives directories
|
||||
PacsPrimSourceDirectories = [ ]
|
||||
PacsPrimSourceDirectories += [ DatabaseRootPath + "/decors/vegetations" ]
|
||||
|
||||
|
||||
# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
|
||||
|
||||
# Ig lookup directories used by rbank
|
||||
IgLookupDirectories = [ ]
|
||||
|
||||
# Shape lookup directories used by rbank
|
||||
ShapeLookupDirectories = [ ]
|
||||
ShapeLookupDirectories += [ EcosystemPath + "/shape_clodtex_build" ]
|
||||
ShapeLookupDirectories += [ EcosystemPath + "/shape_with_coarse_mesh" ]
|
||||
|
||||
# Map lookup directories not yet used
|
||||
MapLookupDirectories = [ ]
|
||||
MapLookupDirectories += [ EcosystemPath + "/map_export" ]
|
||||
MapLookupDirectories += [ EcosystemPath + "/map_uncompressed" ]
|
||||
|
||||
|
||||
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
|
||||
|
||||
# Map directories
|
||||
MapExportDirectory = CommonPath + "/map_export"
|
||||
MapUncompressedExportDirectory = CommonPath + "/map_uncompressed"
|
||||
|
||||
# Shape directories
|
||||
ShapeTagExportDirectory = CommonPath + "/shape_tag"
|
||||
ShapeNotOptimizedExportDirectory = CommonPath + "/shape_not_optimized"
|
||||
ShapeWithCoarseMeshExportDirectory = CommonPath + "/shape_with_coarse_mesh"
|
||||
ShapeLightmapNotOptimizedExportDirectory = CommonPath + "/shape_lightmap_not_optimized"
|
||||
ShapeAnimExportDirectory = CommonPath + "/shape_anim"
|
||||
|
||||
# Smallbank directories
|
||||
SmallbankExportDirectory = CommonPath + "/smallbank"
|
||||
|
||||
# Tiles directories
|
||||
TilesExportDirectory = CommonPath + "/tiles"
|
||||
|
||||
# Tiles directories
|
||||
DisplaceExportDirectory = CommonPath + "/diplace"
|
||||
|
||||
# Veget directories
|
||||
VegetExportDirectory = CommonPath + "/veget"
|
||||
VegetTagExportDirectory = CommonPath + "/veget_tag"
|
||||
|
||||
# Veget Set directories
|
||||
VegetSetExportDirectory = CommonPath + "/veget_set"
|
||||
|
||||
# Ligo directories
|
||||
LigoEcosystemExportDirectory = CommonPath + "/ligo_es"
|
||||
LigoEcosystemIgExportDirectory = LigoEcosystemExportDirectory + "/igs"
|
||||
LigoEcosystemZoneExportDirectory = LigoEcosystemExportDirectory + "/zones"
|
||||
LigoEcosystemZoneLigoExportDirectory = LigoEcosystemExportDirectory + "/zoneligos"
|
||||
LigoEcosystemCmbExportDirectory = LigoEcosystemExportDirectory + "/cmb"
|
||||
LigoEcosystemTagExportDirectory = CommonPath + "/ligo_es_tag"
|
||||
|
||||
# Zone directories
|
||||
ZoneExportDirectory = CommonPath + "/zone"
|
||||
|
||||
# PACS primitives directories
|
||||
PacsPrimExportDirectory = CommonPath + "/pacs_prim"
|
||||
PacsPrimTagExportDirectory = CommonPath + "/pacs_prim_tag"
|
||||
|
||||
|
||||
# *** BUILD DIRECTORIES FOR THE BUILD PIPELINE ***
|
||||
|
||||
# Map directories
|
||||
MapBuildDirectory = CommonPath + "/map"
|
||||
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
|
||||
MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
|
||||
MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
|
||||
MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
|
||||
MapTagBuildDirectory = CommonPath + "/map_tag"
|
||||
|
||||
# Shape directories
|
||||
ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
|
||||
ShapeWithCoarseMeshBuildDirectory = CommonPath + "/shape_with_coarse_mesh_builded"
|
||||
ShapeLightmapBuildDirectory = CommonPath + "/shape_lightmap"
|
||||
ShapeLightmap16BitsBuildDirectory = CommonPath + "/shape_lightmap_16_bits"
|
||||
|
||||
# Farbank directories
|
||||
FarbankBuildDirectory = CommonPath + "/farbank"
|
||||
|
||||
# Ig directories ************** TODO CONFIRM IN IG BUILD PROCESS ************ FIX RBANK IF NEEDED ***********
|
||||
IgLandBuildDirectory = "_invalid"
|
||||
IgOtherBuildDirectory = "_invalid"
|
||||
|
||||
# Rbank directories
|
||||
RbankOutputBuildDirectory = "_invalid"
|
||||
|
||||
# Ligo directories
|
||||
|
||||
|
||||
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
|
||||
|
||||
# Map directory
|
||||
MapInstallDirectory = CommonName + "_maps"
|
||||
BitmapInstallDirectory = MapInstallDirectory
|
||||
|
||||
# Shape directory
|
||||
ShapeInstallDirectory = CommonName + "_shapes"
|
||||
|
||||
# Lightmap directory
|
||||
LightmapInstallDirectory = CommonName + "_lightmaps"
|
||||
|
||||
# Tile directory
|
||||
TilesInstallDirectory = CommonName + "_tiles"
|
||||
|
||||
# Displace directory
|
||||
DisplaceInstallDirectory = CommonName + "_displaces"
|
||||
|
||||
# Bank directory
|
||||
BankInstallDirectory = CommonName + "_bank"
|
||||
|
||||
# Vegetable set directory
|
||||
VegetSetInstallDirectory = CommonName + "_vegetable_sets"
|
||||
|
||||
# Vegetable shape directory
|
||||
VegetInstallDirectory = CommonName + "_vegetables"
|
||||
|
||||
# PACS primitives directories
|
||||
PacsPrimInstallDirectory = CommonName + "_pacs_prim"
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# #################################################################
|
||||
# ## %PreGenWarning%
|
||||
# #################################################################
|
||||
#
|
||||
# \file directories.py
|
||||
# \brief Directories configuration
|
||||
# \date %PreGenDateTimeStamp%
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# \date 2001-2005
|
||||
# \author Nevrax
|
||||
# Python port of game data build pipeline.
|
||||
# Directories configuration for '%PreGenEcosystemName%' ecosystem.
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
|
||||
|
||||
# *** ECOSYSTEM AND CONTINENT NAMES ***
|
||||
|
||||
EcosystemName = "%PreGenEcosystemName%"
|
||||
EcosystemPath = "ecosystems/" + EcosystemName
|
||||
CommonName = EcosystemName
|
||||
CommonPath = EcosystemPath
|
||||
|
||||
DatabaseRootName = "%PreGenDatabaseRootName%"
|
||||
DatabaseRootPath = "stuff/" + DatabaseRootName
|
||||
|
||||
|
||||
# *** SOURCE DIRECTORIES IN THE DATABASE ***
|
||||
|
||||
# Shape directories
|
||||
ShapeSourceDirectories = [ ]
|
||||
ShapeSourceDirectories += [ DatabaseRootPath + "/decors/vegetations" ]
|
||||
ShapeSourceDirectories += [ "landscape/ligo/" + EcosystemName + "/max" ]
|
||||
|
||||
# Maps directories
|
||||
MapSourceDirectories = [ ]
|
||||
MapSourceDirectories += [ DatabaseRootPath + "/decors/_textures" ]
|
||||
%PreGenMapSubdirectories%MapSourceDirectories += [ "landscape/microveget/" + EcosystemName + "" ]
|
||||
MapSourceDirectories += [ "landscape/water/meshes/" + EcosystemName + "" ]
|
||||
|
||||
MapUncompressedSourceDirectories = [ ]
|
||||
|
||||
# Tiles directories
|
||||
TilesSourceDirectories = [ ]
|
||||
%PreGenTileSourceDirectories%
|
||||
# Tiles root directory
|
||||
TileRootSourceDirectory = "landscape/_texture_tiles/" + EcosystemName
|
||||
|
||||
# Displace directory
|
||||
DisplaceSourceDirectory = "landscape/_texture_tiles/" + EcosystemName + "/displace"
|
||||
|
||||
# Do not use, needs to be removed and fixed in processes
|
||||
DisplaceSourceDirectories = [ ]
|
||||
DisplaceSourceDirectories += [ DisplaceSourceDirectory ]
|
||||
|
||||
# Bank directory
|
||||
BankSourceDirectory = "landscape/_texture_tiles/" + EcosystemName
|
||||
|
||||
# Vegetable set directories
|
||||
VegetSetSourceDirectories = [ ]
|
||||
VegetSetSourceDirectories += [ "landscape/microveget/" + EcosystemName ]
|
||||
|
||||
# Veget directories
|
||||
VegetSourceDirectories = [ ]
|
||||
VegetSourceDirectories += [ "landscape/microveget/" + EcosystemName ]
|
||||
|
||||
# Ligo directories
|
||||
LigoBaseSourceDirectory = "landscape/ligo/" + EcosystemName
|
||||
LigoMaxSourceDirectory = LigoBaseSourceDirectory + "/max"
|
||||
|
||||
# Zone directories
|
||||
ZoneSourceDirectory = [ "landscape/zones/" + EcosystemName ] # For old snowballs style landscape when not using ligo
|
||||
|
||||
# Ig landscape directories
|
||||
IgLandSourceDirectory = "_invalid"
|
||||
|
||||
# Ig other directories
|
||||
IgOtherSourceDirectory = "_invalid"
|
||||
|
||||
# PACS primitives directories
|
||||
PacsPrimSourceDirectories = [ ]
|
||||
PacsPrimSourceDirectories += [ DatabaseRootPath + "/decors/vegetations" ]
|
||||
|
||||
|
||||
# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
|
||||
|
||||
# Ig lookup directories used by rbank
|
||||
IgLookupDirectories = [ ]
|
||||
|
||||
# Shape lookup directories used by rbank
|
||||
ShapeLookupDirectories = [ ]
|
||||
ShapeLookupDirectories += [ EcosystemPath + "/shape_clodtex_build" ]
|
||||
ShapeLookupDirectories += [ EcosystemPath + "/shape_with_coarse_mesh" ]
|
||||
|
||||
# Map lookup directories not yet used
|
||||
MapLookupDirectories = [ ]
|
||||
MapLookupDirectories += [ EcosystemPath + "/map_export" ]
|
||||
MapLookupDirectories += [ EcosystemPath + "/map_uncompressed" ]
|
||||
|
||||
|
||||
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
|
||||
|
||||
# Map directories
|
||||
MapExportDirectory = CommonPath + "/map_export"
|
||||
MapUncompressedExportDirectory = CommonPath + "/map_uncompressed"
|
||||
|
||||
# Shape directories
|
||||
ShapeTagExportDirectory = CommonPath + "/shape_tag"
|
||||
ShapeNotOptimizedExportDirectory = CommonPath + "/shape_not_optimized"
|
||||
ShapeWithCoarseMeshExportDirectory = CommonPath + "/shape_with_coarse_mesh"
|
||||
ShapeLightmapNotOptimizedExportDirectory = CommonPath + "/shape_lightmap_not_optimized"
|
||||
ShapeAnimExportDirectory = CommonPath + "/shape_anim"
|
||||
|
||||
# Smallbank directories
|
||||
SmallbankExportDirectory = CommonPath + "/smallbank"
|
||||
|
||||
# Tiles directories
|
||||
TilesExportDirectory = CommonPath + "/tiles"
|
||||
|
||||
# Tiles directories
|
||||
DisplaceExportDirectory = CommonPath + "/diplace"
|
||||
|
||||
# Veget directories
|
||||
VegetExportDirectory = CommonPath + "/veget"
|
||||
VegetTagExportDirectory = CommonPath + "/veget_tag"
|
||||
|
||||
# Veget Set directories
|
||||
VegetSetExportDirectory = CommonPath + "/veget_set"
|
||||
|
||||
# Ligo directories
|
||||
LigoEcosystemExportDirectory = CommonPath + "/ligo_es"
|
||||
LigoEcosystemIgExportDirectory = LigoEcosystemExportDirectory + "/igs"
|
||||
LigoEcosystemZoneExportDirectory = LigoEcosystemExportDirectory + "/zones"
|
||||
LigoEcosystemZoneLigoExportDirectory = LigoEcosystemExportDirectory + "/zoneligos"
|
||||
LigoEcosystemCmbExportDirectory = LigoEcosystemExportDirectory + "/cmb"
|
||||
LigoEcosystemTagExportDirectory = CommonPath + "/ligo_es_tag"
|
||||
|
||||
# Zone directories
|
||||
ZoneExportDirectory = CommonPath + "/zone"
|
||||
|
||||
# PACS primitives directories
|
||||
PacsPrimExportDirectory = CommonPath + "/pacs_prim"
|
||||
PacsPrimTagExportDirectory = CommonPath + "/pacs_prim_tag"
|
||||
|
||||
|
||||
# *** BUILD DIRECTORIES FOR THE BUILD PIPELINE ***
|
||||
|
||||
# Map directories
|
||||
MapBuildDirectory = CommonPath + "/map"
|
||||
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
|
||||
MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
|
||||
MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
|
||||
MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
|
||||
MapTagBuildDirectory = CommonPath + "/map_tag"
|
||||
|
||||
# Shape directories
|
||||
ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
|
||||
ShapeWithCoarseMeshBuildDirectory = CommonPath + "/shape_with_coarse_mesh_builded"
|
||||
ShapeLightmapBuildDirectory = CommonPath + "/shape_lightmap"
|
||||
ShapeLightmap16BitsBuildDirectory = CommonPath + "/shape_lightmap_16_bits"
|
||||
|
||||
# Farbank directories
|
||||
FarbankBuildDirectory = CommonPath + "/farbank"
|
||||
|
||||
# Ig directories ************** TODO CONFIRM IN IG BUILD PROCESS ************ FIX RBANK IF NEEDED ***********
|
||||
IgLandBuildDirectory = "_invalid"
|
||||
IgOtherBuildDirectory = "_invalid"
|
||||
|
||||
# Rbank directories
|
||||
RbankOutputBuildDirectory = "_invalid"
|
||||
|
||||
# Ligo directories
|
||||
|
||||
|
||||
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
|
||||
|
||||
# Map directory
|
||||
MapInstallDirectory = CommonName + "_maps"
|
||||
BitmapInstallDirectory = MapInstallDirectory
|
||||
|
||||
# Shape directory
|
||||
ShapeInstallDirectory = CommonName + "_shapes"
|
||||
|
||||
# Lightmap directory
|
||||
LightmapInstallDirectory = CommonName + "_lightmaps"
|
||||
|
||||
# Tile directory
|
||||
TilesInstallDirectory = CommonName + "_tiles"
|
||||
|
||||
# Displace directory
|
||||
DisplaceInstallDirectory = CommonName + "_displaces"
|
||||
|
||||
# Bank directory
|
||||
BankInstallDirectory = CommonName + "_bank"
|
||||
|
||||
# Vegetable set directory
|
||||
VegetSetInstallDirectory = CommonName + "_vegetable_sets"
|
||||
|
||||
# Vegetable shape directory
|
||||
VegetInstallDirectory = CommonName + "_vegetables"
|
||||
|
||||
# PACS primitives directories
|
||||
PacsPrimInstallDirectory = CommonName + "_pacs_prim"
|
||||
|
@ -1,122 +1,122 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# #################################################################
|
||||
# ## %PreGenWarning%
|
||||
# #################################################################
|
||||
#
|
||||
# \file config.py
|
||||
# \brief Process configuration
|
||||
# \date %PreGenDateTimeStamp%
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Process configuration for '%PreGenEcosystemName%' ecosystem.
|
||||
#
|
||||
# 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 CONFIGURATION ***
|
||||
|
||||
# *** PROCESS CONFIG ***
|
||||
ProcessToComplete = [ ]
|
||||
ProcessToComplete += [ "shape" ]
|
||||
ProcessToComplete += [ "map" ]
|
||||
ProcessToComplete += [ "smallbank" ]
|
||||
ProcessToComplete += [ "farbank" ]
|
||||
ProcessToComplete += [ "tiles" ]
|
||||
ProcessToComplete += [ "displace" ]
|
||||
ProcessToComplete += [ "veget" ]
|
||||
ProcessToComplete += [ "vegetset" ]
|
||||
ProcessToComplete += [ "ligo" ]
|
||||
ProcessToComplete += [ "pacs_prim" ]
|
||||
|
||||
|
||||
# *** ECOSYSTEM AND CONTINENT NAMES ***
|
||||
|
||||
EcosystemName = "%PreGenEcosystemName%"
|
||||
EcosystemPath = "ecosystems/" + EcosystemName
|
||||
CommonName = EcosystemName
|
||||
CommonPath = EcosystemPath
|
||||
|
||||
|
||||
# *** MAP EXPORT OPTIONS ***
|
||||
PanoplyFileList = [ ]
|
||||
HlsBankFileName = ""
|
||||
|
||||
# *** SHAPE EXPORT OPTIONS ***
|
||||
|
||||
# Compute lightmaps ?
|
||||
ShapeExportOptExportLighting = "%PreGenShapeExportOptExportLighting%"
|
||||
|
||||
# Cast shadow in lightmap ?
|
||||
ShapeExportOptShadow = "%PreGenShapeExportOptShadow%"
|
||||
|
||||
# Lighting limits. 0 : normal, 1 : soft shadows
|
||||
ShapeExportOptLightingLimit = %PreGenShapeExportOptLightingLimit%
|
||||
|
||||
# Lightmap lumel size
|
||||
ShapeExportOptLumelSize = "%PreGenShapeExportOptLumelSize%"
|
||||
|
||||
# Oversampling value. Can be 1, 2, 4 or 8
|
||||
ShapeExportOptOversampling = %PreGenShapeExportOptOversampling%
|
||||
|
||||
# Does the lightmap must be generated in 8 bits format ?
|
||||
ShapeExportOpt8BitsLightmap = "%PreGenShapeExportOpt8BitsLightmap%"
|
||||
|
||||
# Does the lightmaps export must generate logs ?
|
||||
ShapeExportOptLightmapLog = "%PreGenShapeExportOptLightmapLog%"
|
||||
|
||||
# Coarse mesh texture mul size
|
||||
TextureMulSizeValue = "%PreGenTextureMulSizeValue%"
|
||||
|
||||
ClodConfigFile = ""
|
||||
|
||||
# *** COARSE MESH TEXTURE NAME ***
|
||||
CoarseMeshTextureNames = [ ]
|
||||
%PreGenCoarseMeshTextureNames%
|
||||
# *** POSTFIX USED BY THE MULTIPLE TILES SYSTEM ***
|
||||
MultipleTilesPostfix = [ ]
|
||||
%PreGenMultipleTilesPostfix%
|
||||
# *** BANK EXPORT OPTIONS ***
|
||||
|
||||
# Name of the tilebank to use
|
||||
BankTileBankName = EcosystemName
|
||||
|
||||
# *** RBANK EXPORT OPTIONS ***
|
||||
|
||||
# Output names
|
||||
RbankRbankName = "_invalid"
|
||||
|
||||
# *** LIGO OPTIONS ***
|
||||
|
||||
LigoExportLand = ""
|
||||
LigoExportOnePass = 0
|
||||
|
||||
# *** MAPS OPTIONS ***
|
||||
|
||||
ReduceBitmapFactor = 0
|
||||
# list all panoply files
|
||||
MapPanoplyFileList = None
|
||||
# name of the .hlsbank to build.
|
||||
MapHlsBankFileName = None
|
||||
|
||||
# *** SHAPE BUILD OPTIONS *
|
||||
|
||||
BuildShadowSkinEnabled = False
|
||||
ClodConfigFile = ""
|
||||
|
||||
# *** PACS_PRIM OPTIONS ***
|
||||
WantLandscapeColPrimPacsList = True
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# #################################################################
|
||||
# ## %PreGenWarning%
|
||||
# #################################################################
|
||||
#
|
||||
# \file config.py
|
||||
# \brief Process configuration
|
||||
# \date %PreGenDateTimeStamp%
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Process configuration for '%PreGenEcosystemName%' ecosystem.
|
||||
#
|
||||
# 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 CONFIGURATION ***
|
||||
|
||||
# *** PROCESS CONFIG ***
|
||||
ProcessToComplete = [ ]
|
||||
ProcessToComplete += [ "shape" ]
|
||||
ProcessToComplete += [ "map" ]
|
||||
ProcessToComplete += [ "smallbank" ]
|
||||
ProcessToComplete += [ "farbank" ]
|
||||
ProcessToComplete += [ "tiles" ]
|
||||
ProcessToComplete += [ "displace" ]
|
||||
ProcessToComplete += [ "veget" ]
|
||||
ProcessToComplete += [ "vegetset" ]
|
||||
ProcessToComplete += [ "ligo" ]
|
||||
ProcessToComplete += [ "pacs_prim" ]
|
||||
|
||||
|
||||
# *** ECOSYSTEM AND CONTINENT NAMES ***
|
||||
|
||||
EcosystemName = "%PreGenEcosystemName%"
|
||||
EcosystemPath = "ecosystems/" + EcosystemName
|
||||
CommonName = EcosystemName
|
||||
CommonPath = EcosystemPath
|
||||
|
||||
|
||||
# *** MAP EXPORT OPTIONS ***
|
||||
PanoplyFileList = [ ]
|
||||
HlsBankFileName = ""
|
||||
|
||||
# *** SHAPE EXPORT OPTIONS ***
|
||||
|
||||
# Compute lightmaps ?
|
||||
ShapeExportOptExportLighting = "%PreGenShapeExportOptExportLighting%"
|
||||
|
||||
# Cast shadow in lightmap ?
|
||||
ShapeExportOptShadow = "%PreGenShapeExportOptShadow%"
|
||||
|
||||
# Lighting limits. 0 : normal, 1 : soft shadows
|
||||
ShapeExportOptLightingLimit = %PreGenShapeExportOptLightingLimit%
|
||||
|
||||
# Lightmap lumel size
|
||||
ShapeExportOptLumelSize = "%PreGenShapeExportOptLumelSize%"
|
||||
|
||||
# Oversampling value. Can be 1, 2, 4 or 8
|
||||
ShapeExportOptOversampling = %PreGenShapeExportOptOversampling%
|
||||
|
||||
# Does the lightmap must be generated in 8 bits format ?
|
||||
ShapeExportOpt8BitsLightmap = "%PreGenShapeExportOpt8BitsLightmap%"
|
||||
|
||||
# Does the lightmaps export must generate logs ?
|
||||
ShapeExportOptLightmapLog = "%PreGenShapeExportOptLightmapLog%"
|
||||
|
||||
# Coarse mesh texture mul size
|
||||
TextureMulSizeValue = "%PreGenTextureMulSizeValue%"
|
||||
|
||||
ClodConfigFile = ""
|
||||
|
||||
# *** COARSE MESH TEXTURE NAME ***
|
||||
CoarseMeshTextureNames = [ ]
|
||||
%PreGenCoarseMeshTextureNames%
|
||||
# *** POSTFIX USED BY THE MULTIPLE TILES SYSTEM ***
|
||||
MultipleTilesPostfix = [ ]
|
||||
%PreGenMultipleTilesPostfix%
|
||||
# *** BANK EXPORT OPTIONS ***
|
||||
|
||||
# Name of the tilebank to use
|
||||
BankTileBankName = EcosystemName
|
||||
|
||||
# *** RBANK EXPORT OPTIONS ***
|
||||
|
||||
# Output names
|
||||
RbankRbankName = "_invalid"
|
||||
|
||||
# *** LIGO OPTIONS ***
|
||||
|
||||
LigoExportLand = ""
|
||||
LigoExportOnePass = 0
|
||||
|
||||
# *** MAPS OPTIONS ***
|
||||
|
||||
ReduceBitmapFactor = 0
|
||||
# list all panoply files
|
||||
MapPanoplyFileList = None
|
||||
# name of the .hlsbank to build.
|
||||
MapHlsBankFileName = None
|
||||
|
||||
# *** SHAPE BUILD OPTIONS *
|
||||
|
||||
BuildShadowSkinEnabled = False
|
||||
ClodConfigFile = ""
|
||||
|
||||
# *** PACS_PRIM OPTIONS ***
|
||||
WantLandscapeColPrimPacsList = True
|
||||
|
@ -1,65 +1,65 @@
|
||||
#!/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
|
||||
sys.path.append("../configuration")
|
||||
if os.path.isfile("generate_all.log"):
|
||||
os.remove("generate_all.log")
|
||||
log = open("generate_all.log", "w")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from tools import *
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Generate all")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
try:
|
||||
subprocess.call([ "python", "generate_simple_max_exporters.py" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
try:
|
||||
subprocess.call([ "python", "generate_tagged_max_exporters.py" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
try:
|
||||
subprocess.call([ "python", "generate_ecosystem_projects.py" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
log.close()
|
||||
#!/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
|
||||
sys.path.append("../configuration")
|
||||
if os.path.isfile("generate_all.log"):
|
||||
os.remove("generate_all.log")
|
||||
log = open("generate_all.log", "w")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from tools import *
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Generate all")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
try:
|
||||
subprocess.call([ "python", "generate_simple_max_exporters.py" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
try:
|
||||
subprocess.call([ "python", "generate_tagged_max_exporters.py" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
try:
|
||||
subprocess.call([ "python", "generate_ecosystem_projects.py" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
log.close()
|
||||
|
@ -1,278 +1,278 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file generate_ecosystem_projects.py
|
||||
# \brief Run all setup processes
|
||||
# \date 2010-09-02 10:36GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Generate ecosystem projects
|
||||
#
|
||||
# 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("generate_ecosystem_projects.log"):
|
||||
os.remove("generate_ecosystem_projects.log")
|
||||
log = open("generate_ecosystem_projects.log", "w")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from tools import *
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Generate ecosystem projects")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
templateDir = os.getcwd().replace("\\", "/") + "/ecosystem_project_template"
|
||||
mkPath(log, templateDir)
|
||||
|
||||
os.chdir("..")
|
||||
|
||||
|
||||
# Scroll down to add an ecosystem.
|
||||
|
||||
|
||||
|
||||
DefaultShapeExportOptExportLighting = "true"
|
||||
DefaultShapeExportOptShadow = "true"
|
||||
DefaultShapeExportOptLightingLimit = "1"
|
||||
DefaultShapeExportOptLumelSize = "0.25"
|
||||
DefaultShapeExportOptOversampling = "1"
|
||||
DefaultShapeExportOpt8BitsLightmap = "true"
|
||||
DefaultShapeExportOptLightmapLog = "true"
|
||||
DefaultTextureMulSizeValue = "1.5"
|
||||
DefaultSeasonSuffixes = [ "sp" ] + [ "su" ] + [ "au" ] + [ "wi" ]
|
||||
DefaultMapSubdirectories = [ ]
|
||||
DefaultTileDirectories = [ ]
|
||||
|
||||
|
||||
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
||||
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
||||
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
|
||||
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
||||
ShapeExportOptOversampling = DefaultShapeExportOptOversampling
|
||||
ShapeExportOpt8BitsLightmap = DefaultShapeExportOpt8BitsLightmap
|
||||
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
||||
TextureMulSizeValue = DefaultTextureMulSizeValue
|
||||
SeasonSuffixes = DefaultSeasonSuffixes
|
||||
MapSubdirectories = DefaultMapSubdirectories
|
||||
TileDirectories = DefaultTileDirectories
|
||||
|
||||
|
||||
PreGenDateTimeStamp = None
|
||||
PreGenEcosystemName = None
|
||||
PreGenDatabaseRootName = None
|
||||
PreGenCoarseMeshTextureNames = None
|
||||
PreGenMultipleTilesPostfix = None
|
||||
PreGenMapSubdirectories = None
|
||||
PreGenTileSourceDirectories = None
|
||||
|
||||
|
||||
def transformLine(line):
|
||||
newline = line.replace("%PreGenWarning%", "WARNING : this is a generated file, don't change it !")
|
||||
newline = newline.replace("%PreGenDateTimeStamp%", PreGenDateTimeStamp)
|
||||
|
||||
newline = newline.replace("%PreGenEcosystemName%", PreGenEcosystemName)
|
||||
newline = newline.replace("%PreGenDatabaseRootName%", PreGenDatabaseRootName)
|
||||
|
||||
newline = newline.replace("%PreGenCoarseMeshTextureNames%", PreGenCoarseMeshTextureNames)
|
||||
newline = newline.replace("%PreGenMultipleTilesPostfix%", PreGenMultipleTilesPostfix)
|
||||
newline = newline.replace("%PreGenMapSubdirectories%", PreGenMapSubdirectories)
|
||||
newline = newline.replace("%PreGenTileSourceDirectories%", PreGenTileSourceDirectories)
|
||||
|
||||
newline = newline.replace("%PreGenShapeExportOptExportLighting%", ShapeExportOptExportLighting)
|
||||
newline = newline.replace("%PreGenShapeExportOptShadow%", ShapeExportOptShadow)
|
||||
newline = newline.replace("%PreGenShapeExportOptLightingLimit%", ShapeExportOptLightingLimit)
|
||||
newline = newline.replace("%PreGenShapeExportOptLumelSize%", ShapeExportOptLumelSize)
|
||||
newline = newline.replace("%PreGenShapeExportOptOversampling%", ShapeExportOptOversampling)
|
||||
newline = newline.replace("%PreGenShapeExportOpt8BitsLightmap%", ShapeExportOpt8BitsLightmap)
|
||||
newline = newline.replace("%PreGenShapeExportOptLightmapLog%", ShapeExportOptLightmapLog)
|
||||
newline = newline.replace("%PreGenTextureMulSizeValue%", TextureMulSizeValue)
|
||||
newline = newline.replace("%PreGenTileSourceDirectories%", PreGenTileSourceDirectories)
|
||||
|
||||
return newline
|
||||
|
||||
def generateFile(sourceFile, destFile):
|
||||
srcf = open(sourceFile, "r")
|
||||
dstf = open(destFile, "w")
|
||||
printLog(log, "WRITE " + destFile)
|
||||
for line in srcf:
|
||||
dstf.write(transformLine(line))
|
||||
dstf.close()
|
||||
srcf.close()
|
||||
|
||||
def generateEcosystem(ecosystemName, databaseRootName):
|
||||
global PreGenEcosystemName
|
||||
PreGenEcosystemName = ecosystemName
|
||||
global PreGenDatabaseRootName
|
||||
PreGenDatabaseRootName = databaseRootName
|
||||
global PreGenDateTimeStamp
|
||||
PreGenDateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
|
||||
|
||||
global PreGenMultipleTilesPostfix
|
||||
PreGenMultipleTilesPostfix = ""
|
||||
global PreGenCoarseMeshTextureNames
|
||||
PreGenCoarseMeshTextureNames = ""
|
||||
global PreGenTileSourceDirectories
|
||||
PreGenTileSourceDirectories = ""
|
||||
for suffix in SeasonSuffixes:
|
||||
PreGenMultipleTilesPostfix += "MultipleTilesPostfix += [ \"_" + suffix + "\" ]\n"
|
||||
PreGenCoarseMeshTextureNames += "CoarseMeshTextureNames += [ \"nel_coarse_mesh_\" + EcosystemName + \"_" + suffix + "\" ]\n"
|
||||
for tiledir in TileDirectories:
|
||||
PreGenTileSourceDirectories += "TilesSourceDirectories += [ \"landscape/_texture_tiles/\" + EcosystemName + \"_" + suffix + "/" + tiledir + "\" ]\n"
|
||||
global PreGenMapSubdirectories
|
||||
PreGenMapSubdirectories = ""
|
||||
for subdir in MapSubdirectories:
|
||||
PreGenMapSubdirectories += "MapSourceDirectories += [ DatabaseRootPath + \"/decors/_textures/" + subdir + "\" ]\n"
|
||||
|
||||
destDir = WorkspaceDirectory + "/ecosystems/" + ecosystemName
|
||||
mkPath(log, destDir)
|
||||
|
||||
generateFile(templateDir + "/process.py", destDir + "/process.py")
|
||||
generateFile(templateDir + "/directories.py", destDir + "/directories.py")
|
||||
|
||||
return
|
||||
|
||||
|
||||
|
||||
# Add new ecosystems below this line.
|
||||
|
||||
|
||||
|
||||
# DESERT
|
||||
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
||||
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
||||
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
|
||||
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
||||
ShapeExportOptOversampling = DefaultShapeExportOptOversampling
|
||||
ShapeExportOpt8BitsLightmap = DefaultShapeExportOpt8BitsLightmap
|
||||
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
||||
TextureMulSizeValue = DefaultTextureMulSizeValue
|
||||
SeasonSuffixes = DefaultSeasonSuffixes
|
||||
MapSubdirectories = [ ]
|
||||
MapSubdirectories += [ "vegetations" ]
|
||||
TileDirectories = [ ]
|
||||
TileDirectories += [ "1.5-marecage_profond" ]
|
||||
TileDirectories += [ "1-marecages" ]
|
||||
TileDirectories += [ "2-citees" ]
|
||||
TileDirectories += [ "3-fond_canyon" ]
|
||||
TileDirectories += [ "4.2-boisbandeclair" ]
|
||||
TileDirectories += [ "4.5-desert2boisbande" ]
|
||||
TileDirectories += [ "4-falaise_bois_bande" ]
|
||||
TileDirectories += [ "5-falaise_normales" ]
|
||||
TileDirectories += [ "6.5-desertalternatif" ]
|
||||
TileDirectories += [ "6-desert" ]
|
||||
TileDirectories += [ "7-routes" ]
|
||||
TileDirectories += [ "8-foretbrule" ]
|
||||
generateEcosystem("desert", "fyros")
|
||||
|
||||
|
||||
# JUNGLE
|
||||
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
||||
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
||||
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
|
||||
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
||||
ShapeExportOptOversampling = DefaultShapeExportOptOversampling
|
||||
ShapeExportOpt8BitsLightmap = "false"
|
||||
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
||||
TextureMulSizeValue = DefaultTextureMulSizeValue
|
||||
SeasonSuffixes = DefaultSeasonSuffixes
|
||||
MapSubdirectories = [ ]
|
||||
MapSubdirectories += [ "vegetations" ]
|
||||
TileDirectories = [ ]
|
||||
TileDirectories += [ "10-crevassejungle" ]
|
||||
TileDirectories += [ "11-paroisjungle" ]
|
||||
TileDirectories += [ "12-vasejungle" ]
|
||||
TileDirectories += [ "1-junglemousse" ]
|
||||
TileDirectories += [ "2-junglefeuilles" ]
|
||||
TileDirectories += [ "3-jungleherbesseche" ]
|
||||
TileDirectories += [ "4-jungleherbevieille" ]
|
||||
TileDirectories += [ "5-jungleterreaux" ]
|
||||
TileDirectories += [ "6-junglegoo" ]
|
||||
TileDirectories += [ "7-sciurejungle" ]
|
||||
TileDirectories += [ "8-terrejungle" ]
|
||||
TileDirectories += [ "9-falaisejungle" ]
|
||||
TileDirectories += [ "Transitions" ]
|
||||
generateEcosystem("jungle", "jungle")
|
||||
|
||||
|
||||
# PRIMES RACINES
|
||||
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
||||
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
||||
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
|
||||
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
||||
ShapeExportOptOversampling = DefaultShapeExportOptOversampling
|
||||
ShapeExportOpt8BitsLightmap = "false"
|
||||
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
||||
TextureMulSizeValue = DefaultTextureMulSizeValue
|
||||
SeasonSuffixes = DefaultSeasonSuffixes
|
||||
MapSubdirectories = [ ]
|
||||
MapSubdirectories += [ "vegetations" ]
|
||||
MapSubdirectories += [ "batiments" ]
|
||||
TileDirectories = [ ]
|
||||
TileDirectories += [ "PR-creux" ]
|
||||
TileDirectories += [ "PR-dome-moussu" ]
|
||||
TileDirectories += [ "PR-kitiniere" ]
|
||||
TileDirectories += [ "PR-mousse-licken" ]
|
||||
TileDirectories += [ "PR-mousse-spongieus" ]
|
||||
TileDirectories += [ "PR-parois" ]
|
||||
TileDirectories += [ "PR-sol-mousse" ]
|
||||
TileDirectories += [ "PR-souche" ]
|
||||
TileDirectories += [ "PR-stalagmite" ]
|
||||
TileDirectories += [ "PR-terre" ]
|
||||
TileDirectories += [ "aditif" ]
|
||||
generateEcosystem("primes_racines", "primes_racines")
|
||||
|
||||
|
||||
# LACUSTRE
|
||||
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
||||
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
||||
ShapeExportOptLightingLimit = "0"
|
||||
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
||||
ShapeExportOptOversampling = "8"
|
||||
ShapeExportOpt8BitsLightmap = "false"
|
||||
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
||||
TextureMulSizeValue = DefaultTextureMulSizeValue
|
||||
SeasonSuffixes = DefaultSeasonSuffixes
|
||||
MapSubdirectories = [ ]
|
||||
MapSubdirectories += [ "vegetations" ]
|
||||
TileDirectories = [ ]
|
||||
TileDirectories += [ "1a-sable-marin" ]
|
||||
TileDirectories += [ "1-plages" ]
|
||||
TileDirectories += [ "2-iles" ]
|
||||
TileDirectories += [ "2-ilesa" ]
|
||||
TileDirectories += [ "2-iles-marines" ]
|
||||
TileDirectories += [ "3-fondmarin2plage" ]
|
||||
TileDirectories += [ "4-marecages" ]
|
||||
TileDirectories += [ "5-marecages" ]
|
||||
TileDirectories += [ "5-parois-marine" ]
|
||||
TileDirectories += [ "6-fond_marin" ]
|
||||
TileDirectories += [ "7-bassesiles" ]
|
||||
TileDirectories += [ "7-mousseter" ]
|
||||
TileDirectories += [ "7-racines" ]
|
||||
TileDirectories += [ "8-mousse_marine" ]
|
||||
TileDirectories += [ "constructible" ]
|
||||
generateEcosystem("lacustre", "tryker")
|
||||
|
||||
|
||||
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file generate_ecosystem_projects.py
|
||||
# \brief Run all setup processes
|
||||
# \date 2010-09-02 10:36GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Generate ecosystem projects
|
||||
#
|
||||
# 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("generate_ecosystem_projects.log"):
|
||||
os.remove("generate_ecosystem_projects.log")
|
||||
log = open("generate_ecosystem_projects.log", "w")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from tools import *
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Generate ecosystem projects")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
templateDir = os.getcwd().replace("\\", "/") + "/ecosystem_project_template"
|
||||
mkPath(log, templateDir)
|
||||
|
||||
os.chdir("..")
|
||||
|
||||
|
||||
# Scroll down to add an ecosystem.
|
||||
|
||||
|
||||
|
||||
DefaultShapeExportOptExportLighting = "true"
|
||||
DefaultShapeExportOptShadow = "true"
|
||||
DefaultShapeExportOptLightingLimit = "1"
|
||||
DefaultShapeExportOptLumelSize = "0.25"
|
||||
DefaultShapeExportOptOversampling = "1"
|
||||
DefaultShapeExportOpt8BitsLightmap = "true"
|
||||
DefaultShapeExportOptLightmapLog = "true"
|
||||
DefaultTextureMulSizeValue = "1.5"
|
||||
DefaultSeasonSuffixes = [ "sp" ] + [ "su" ] + [ "au" ] + [ "wi" ]
|
||||
DefaultMapSubdirectories = [ ]
|
||||
DefaultTileDirectories = [ ]
|
||||
|
||||
|
||||
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
||||
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
||||
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
|
||||
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
||||
ShapeExportOptOversampling = DefaultShapeExportOptOversampling
|
||||
ShapeExportOpt8BitsLightmap = DefaultShapeExportOpt8BitsLightmap
|
||||
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
||||
TextureMulSizeValue = DefaultTextureMulSizeValue
|
||||
SeasonSuffixes = DefaultSeasonSuffixes
|
||||
MapSubdirectories = DefaultMapSubdirectories
|
||||
TileDirectories = DefaultTileDirectories
|
||||
|
||||
|
||||
PreGenDateTimeStamp = None
|
||||
PreGenEcosystemName = None
|
||||
PreGenDatabaseRootName = None
|
||||
PreGenCoarseMeshTextureNames = None
|
||||
PreGenMultipleTilesPostfix = None
|
||||
PreGenMapSubdirectories = None
|
||||
PreGenTileSourceDirectories = None
|
||||
|
||||
|
||||
def transformLine(line):
|
||||
newline = line.replace("%PreGenWarning%", "WARNING : this is a generated file, don't change it !")
|
||||
newline = newline.replace("%PreGenDateTimeStamp%", PreGenDateTimeStamp)
|
||||
|
||||
newline = newline.replace("%PreGenEcosystemName%", PreGenEcosystemName)
|
||||
newline = newline.replace("%PreGenDatabaseRootName%", PreGenDatabaseRootName)
|
||||
|
||||
newline = newline.replace("%PreGenCoarseMeshTextureNames%", PreGenCoarseMeshTextureNames)
|
||||
newline = newline.replace("%PreGenMultipleTilesPostfix%", PreGenMultipleTilesPostfix)
|
||||
newline = newline.replace("%PreGenMapSubdirectories%", PreGenMapSubdirectories)
|
||||
newline = newline.replace("%PreGenTileSourceDirectories%", PreGenTileSourceDirectories)
|
||||
|
||||
newline = newline.replace("%PreGenShapeExportOptExportLighting%", ShapeExportOptExportLighting)
|
||||
newline = newline.replace("%PreGenShapeExportOptShadow%", ShapeExportOptShadow)
|
||||
newline = newline.replace("%PreGenShapeExportOptLightingLimit%", ShapeExportOptLightingLimit)
|
||||
newline = newline.replace("%PreGenShapeExportOptLumelSize%", ShapeExportOptLumelSize)
|
||||
newline = newline.replace("%PreGenShapeExportOptOversampling%", ShapeExportOptOversampling)
|
||||
newline = newline.replace("%PreGenShapeExportOpt8BitsLightmap%", ShapeExportOpt8BitsLightmap)
|
||||
newline = newline.replace("%PreGenShapeExportOptLightmapLog%", ShapeExportOptLightmapLog)
|
||||
newline = newline.replace("%PreGenTextureMulSizeValue%", TextureMulSizeValue)
|
||||
newline = newline.replace("%PreGenTileSourceDirectories%", PreGenTileSourceDirectories)
|
||||
|
||||
return newline
|
||||
|
||||
def generateFile(sourceFile, destFile):
|
||||
srcf = open(sourceFile, "r")
|
||||
dstf = open(destFile, "w")
|
||||
printLog(log, "WRITE " + destFile)
|
||||
for line in srcf:
|
||||
dstf.write(transformLine(line))
|
||||
dstf.close()
|
||||
srcf.close()
|
||||
|
||||
def generateEcosystem(ecosystemName, databaseRootName):
|
||||
global PreGenEcosystemName
|
||||
PreGenEcosystemName = ecosystemName
|
||||
global PreGenDatabaseRootName
|
||||
PreGenDatabaseRootName = databaseRootName
|
||||
global PreGenDateTimeStamp
|
||||
PreGenDateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
|
||||
|
||||
global PreGenMultipleTilesPostfix
|
||||
PreGenMultipleTilesPostfix = ""
|
||||
global PreGenCoarseMeshTextureNames
|
||||
PreGenCoarseMeshTextureNames = ""
|
||||
global PreGenTileSourceDirectories
|
||||
PreGenTileSourceDirectories = ""
|
||||
for suffix in SeasonSuffixes:
|
||||
PreGenMultipleTilesPostfix += "MultipleTilesPostfix += [ \"_" + suffix + "\" ]\n"
|
||||
PreGenCoarseMeshTextureNames += "CoarseMeshTextureNames += [ \"nel_coarse_mesh_\" + EcosystemName + \"_" + suffix + "\" ]\n"
|
||||
for tiledir in TileDirectories:
|
||||
PreGenTileSourceDirectories += "TilesSourceDirectories += [ \"landscape/_texture_tiles/\" + EcosystemName + \"_" + suffix + "/" + tiledir + "\" ]\n"
|
||||
global PreGenMapSubdirectories
|
||||
PreGenMapSubdirectories = ""
|
||||
for subdir in MapSubdirectories:
|
||||
PreGenMapSubdirectories += "MapSourceDirectories += [ DatabaseRootPath + \"/decors/_textures/" + subdir + "\" ]\n"
|
||||
|
||||
destDir = WorkspaceDirectory + "/ecosystems/" + ecosystemName
|
||||
mkPath(log, destDir)
|
||||
|
||||
generateFile(templateDir + "/process.py", destDir + "/process.py")
|
||||
generateFile(templateDir + "/directories.py", destDir + "/directories.py")
|
||||
|
||||
return
|
||||
|
||||
|
||||
|
||||
# Add new ecosystems below this line.
|
||||
|
||||
|
||||
|
||||
# DESERT
|
||||
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
||||
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
||||
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
|
||||
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
||||
ShapeExportOptOversampling = DefaultShapeExportOptOversampling
|
||||
ShapeExportOpt8BitsLightmap = DefaultShapeExportOpt8BitsLightmap
|
||||
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
||||
TextureMulSizeValue = DefaultTextureMulSizeValue
|
||||
SeasonSuffixes = DefaultSeasonSuffixes
|
||||
MapSubdirectories = [ ]
|
||||
MapSubdirectories += [ "vegetations" ]
|
||||
TileDirectories = [ ]
|
||||
TileDirectories += [ "1.5-marecage_profond" ]
|
||||
TileDirectories += [ "1-marecages" ]
|
||||
TileDirectories += [ "2-citees" ]
|
||||
TileDirectories += [ "3-fond_canyon" ]
|
||||
TileDirectories += [ "4.2-boisbandeclair" ]
|
||||
TileDirectories += [ "4.5-desert2boisbande" ]
|
||||
TileDirectories += [ "4-falaise_bois_bande" ]
|
||||
TileDirectories += [ "5-falaise_normales" ]
|
||||
TileDirectories += [ "6.5-desertalternatif" ]
|
||||
TileDirectories += [ "6-desert" ]
|
||||
TileDirectories += [ "7-routes" ]
|
||||
TileDirectories += [ "8-foretbrule" ]
|
||||
generateEcosystem("desert", "fyros")
|
||||
|
||||
|
||||
# JUNGLE
|
||||
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
||||
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
||||
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
|
||||
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
||||
ShapeExportOptOversampling = DefaultShapeExportOptOversampling
|
||||
ShapeExportOpt8BitsLightmap = "false"
|
||||
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
||||
TextureMulSizeValue = DefaultTextureMulSizeValue
|
||||
SeasonSuffixes = DefaultSeasonSuffixes
|
||||
MapSubdirectories = [ ]
|
||||
MapSubdirectories += [ "vegetations" ]
|
||||
TileDirectories = [ ]
|
||||
TileDirectories += [ "10-crevassejungle" ]
|
||||
TileDirectories += [ "11-paroisjungle" ]
|
||||
TileDirectories += [ "12-vasejungle" ]
|
||||
TileDirectories += [ "1-junglemousse" ]
|
||||
TileDirectories += [ "2-junglefeuilles" ]
|
||||
TileDirectories += [ "3-jungleherbesseche" ]
|
||||
TileDirectories += [ "4-jungleherbevieille" ]
|
||||
TileDirectories += [ "5-jungleterreaux" ]
|
||||
TileDirectories += [ "6-junglegoo" ]
|
||||
TileDirectories += [ "7-sciurejungle" ]
|
||||
TileDirectories += [ "8-terrejungle" ]
|
||||
TileDirectories += [ "9-falaisejungle" ]
|
||||
TileDirectories += [ "Transitions" ]
|
||||
generateEcosystem("jungle", "jungle")
|
||||
|
||||
|
||||
# PRIMES RACINES
|
||||
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
||||
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
||||
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
|
||||
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
||||
ShapeExportOptOversampling = DefaultShapeExportOptOversampling
|
||||
ShapeExportOpt8BitsLightmap = "false"
|
||||
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
||||
TextureMulSizeValue = DefaultTextureMulSizeValue
|
||||
SeasonSuffixes = DefaultSeasonSuffixes
|
||||
MapSubdirectories = [ ]
|
||||
MapSubdirectories += [ "vegetations" ]
|
||||
MapSubdirectories += [ "batiments" ]
|
||||
TileDirectories = [ ]
|
||||
TileDirectories += [ "PR-creux" ]
|
||||
TileDirectories += [ "PR-dome-moussu" ]
|
||||
TileDirectories += [ "PR-kitiniere" ]
|
||||
TileDirectories += [ "PR-mousse-licken" ]
|
||||
TileDirectories += [ "PR-mousse-spongieus" ]
|
||||
TileDirectories += [ "PR-parois" ]
|
||||
TileDirectories += [ "PR-sol-mousse" ]
|
||||
TileDirectories += [ "PR-souche" ]
|
||||
TileDirectories += [ "PR-stalagmite" ]
|
||||
TileDirectories += [ "PR-terre" ]
|
||||
TileDirectories += [ "aditif" ]
|
||||
generateEcosystem("primes_racines", "primes_racines")
|
||||
|
||||
|
||||
# LACUSTRE
|
||||
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
|
||||
ShapeExportOptShadow = DefaultShapeExportOptShadow
|
||||
ShapeExportOptLightingLimit = "0"
|
||||
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
|
||||
ShapeExportOptOversampling = "8"
|
||||
ShapeExportOpt8BitsLightmap = "false"
|
||||
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
|
||||
TextureMulSizeValue = DefaultTextureMulSizeValue
|
||||
SeasonSuffixes = DefaultSeasonSuffixes
|
||||
MapSubdirectories = [ ]
|
||||
MapSubdirectories += [ "vegetations" ]
|
||||
TileDirectories = [ ]
|
||||
TileDirectories += [ "1a-sable-marin" ]
|
||||
TileDirectories += [ "1-plages" ]
|
||||
TileDirectories += [ "2-iles" ]
|
||||
TileDirectories += [ "2-ilesa" ]
|
||||
TileDirectories += [ "2-iles-marines" ]
|
||||
TileDirectories += [ "3-fondmarin2plage" ]
|
||||
TileDirectories += [ "4-marecages" ]
|
||||
TileDirectories += [ "5-marecages" ]
|
||||
TileDirectories += [ "5-parois-marine" ]
|
||||
TileDirectories += [ "6-fond_marin" ]
|
||||
TileDirectories += [ "7-bassesiles" ]
|
||||
TileDirectories += [ "7-mousseter" ]
|
||||
TileDirectories += [ "7-racines" ]
|
||||
TileDirectories += [ "8-mousse_marine" ]
|
||||
TileDirectories += [ "constructible" ]
|
||||
generateEcosystem("lacustre", "tryker")
|
||||
|
||||
|
||||
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
|
@ -1,100 +1,100 @@
|
||||
#!/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
|
||||
sys.path.append("../configuration")
|
||||
if os.path.isfile("generate_simple_max_exporters.log"):
|
||||
os.remove("generate_simple_max_exporters.log")
|
||||
log = open("generate_simple_max_exporters.log", "w")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from tools import *
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Generate simple max exporters")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
def processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||
newline = line.replace("%PreGenWarning%", "WARNING : this is a generated file, don't change it !")
|
||||
newline = newline.replace("%PreGenDateTimeStamp%", dateTimeStamp)
|
||||
newline = newline.replace("%PreGenProcessName%", processName)
|
||||
newline = newline.replace("%PreGenFileExtension%", fileExtension)
|
||||
newline = newline.replace("%PreGenSourceDirectoriesVariable%", sourceDirectoriesVariable)
|
||||
newline = newline.replace("%PreGenExportDirectoryVariable%", exportDirectoryVariable)
|
||||
newline = newline.replace("%PreGenInstallDirectoryVariable%", clientDirectoryVariable)
|
||||
return newline
|
||||
|
||||
def generateSimpleMaxExporterFile(sourceFile, destFile, writeMode, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||
srcf = open(sourceFile, "r")
|
||||
dstf = open(destFile, writeMode)
|
||||
printLog(log, "WRITE " + destFile + " " + writeMode)
|
||||
for line in srcf:
|
||||
dstf.write(processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp))
|
||||
dstf.close()
|
||||
srcf.close()
|
||||
|
||||
def generateSimpleMaxExporter(processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable):
|
||||
dateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
|
||||
processDir = ScriptDirectory + "/processes/" + processName
|
||||
mkPath(log, processDir)
|
||||
maxscriptDir = processDir + "/maxscript"
|
||||
mkPath(log, maxscriptDir)
|
||||
templateDir = os.getcwd().replace("\\", "/") + "/simple_max_exporter_template"
|
||||
mkPath(log, templateDir)
|
||||
scriptDir = os.getcwd().replace("\\", "/") + "/max_exporter_scripts"
|
||||
mkPath(log, scriptDir)
|
||||
|
||||
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 + "/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(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"):
|
||||
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"):
|
||||
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(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)
|
||||
|
||||
|
||||
|
||||
generateSimpleMaxExporter("skel", "skel", "SkelSourceDirectories", "SkelExportDirectory", "SkelInstallDirectory")
|
||||
|
||||
generateSimpleMaxExporter("swt", "swt", "SwtSourceDirectories", "SwtExportDirectory", "SwtInstallDirectory")
|
||||
|
||||
generateSimpleMaxExporter("zone", "zone", "ZoneSourceDirectory", "ZoneExportDirectory", "ZoneInstallDirectory")
|
||||
|
||||
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
#!/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
|
||||
sys.path.append("../configuration")
|
||||
if os.path.isfile("generate_simple_max_exporters.log"):
|
||||
os.remove("generate_simple_max_exporters.log")
|
||||
log = open("generate_simple_max_exporters.log", "w")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from tools import *
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Generate simple max exporters")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
def processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||
newline = line.replace("%PreGenWarning%", "WARNING : this is a generated file, don't change it !")
|
||||
newline = newline.replace("%PreGenDateTimeStamp%", dateTimeStamp)
|
||||
newline = newline.replace("%PreGenProcessName%", processName)
|
||||
newline = newline.replace("%PreGenFileExtension%", fileExtension)
|
||||
newline = newline.replace("%PreGenSourceDirectoriesVariable%", sourceDirectoriesVariable)
|
||||
newline = newline.replace("%PreGenExportDirectoryVariable%", exportDirectoryVariable)
|
||||
newline = newline.replace("%PreGenInstallDirectoryVariable%", clientDirectoryVariable)
|
||||
return newline
|
||||
|
||||
def generateSimpleMaxExporterFile(sourceFile, destFile, writeMode, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||
srcf = open(sourceFile, "r")
|
||||
dstf = open(destFile, writeMode)
|
||||
printLog(log, "WRITE " + destFile + " " + writeMode)
|
||||
for line in srcf:
|
||||
dstf.write(processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp))
|
||||
dstf.close()
|
||||
srcf.close()
|
||||
|
||||
def generateSimpleMaxExporter(processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable):
|
||||
dateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
|
||||
processDir = ScriptDirectory + "/processes/" + processName
|
||||
mkPath(log, processDir)
|
||||
maxscriptDir = processDir + "/maxscript"
|
||||
mkPath(log, maxscriptDir)
|
||||
templateDir = os.getcwd().replace("\\", "/") + "/simple_max_exporter_template"
|
||||
mkPath(log, templateDir)
|
||||
scriptDir = os.getcwd().replace("\\", "/") + "/max_exporter_scripts"
|
||||
mkPath(log, scriptDir)
|
||||
|
||||
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 + "/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(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"):
|
||||
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"):
|
||||
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(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)
|
||||
|
||||
|
||||
|
||||
generateSimpleMaxExporter("skel", "skel", "SkelSourceDirectories", "SkelExportDirectory", "SkelInstallDirectory")
|
||||
|
||||
generateSimpleMaxExporter("swt", "swt", "SwtSourceDirectories", "SwtExportDirectory", "SwtInstallDirectory")
|
||||
|
||||
generateSimpleMaxExporter("zone", "zone", "ZoneSourceDirectory", "ZoneExportDirectory", "ZoneInstallDirectory")
|
||||
|
||||
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
|
@ -1,120 +1,120 @@
|
||||
#!/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
|
||||
sys.path.append("../configuration")
|
||||
if os.path.isfile("generate_tagged_max_exporters.log"):
|
||||
os.remove("generate_tagged_max_exporters.log")
|
||||
log = open("generate_tagged_max_exporters.log", "w")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from tools import *
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Generate tagged max exporters")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
templateDir = os.getcwd().replace("\\", "/") + "/tagged_max_exporter_template"
|
||||
mkPath(log, templateDir)
|
||||
scriptDir = os.getcwd().replace("\\", "/") + "/max_exporter_scripts"
|
||||
mkPath(log, scriptDir)
|
||||
|
||||
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 = newline.replace("%PreGenDateTimeStamp%", dateTimeStamp)
|
||||
newline = newline.replace("%PreGenProcessName%", processName)
|
||||
newline = newline.replace("%PreGenFileExtension%", fileExtension)
|
||||
newline = newline.replace("%PreGenSourceDirectoriesVariable%", sourceDirectoriesVariable)
|
||||
newline = newline.replace("%PreGenExportDirectoryVariable%", exportDirectoryVariable)
|
||||
newline = newline.replace("%PreGenTagExportDirectoryVariable%", tagExportDirectoryVariable)
|
||||
newline = newline.replace("%PreGenInstallDirectoryVariable%", clientDirectoryVariable)
|
||||
return newline
|
||||
|
||||
def generateTaggedMaxExporterFile(sourceFile, destFile, writeMode, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||
srcf = open(sourceFile, "r")
|
||||
dstf = open(destFile, writeMode)
|
||||
printLog(log, "WRITE " + destFile + " " + writeMode)
|
||||
for line in srcf:
|
||||
dstf.write(processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp))
|
||||
dstf.close()
|
||||
srcf.close()
|
||||
|
||||
def generateTaggedMaxScriptFile(processDir, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||
maxscriptDir = processDir + "/maxscript"
|
||||
mkPath(log, maxscriptDir)
|
||||
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(templateDir + "/export_footer.ms", maxscriptDir + "/" + fileExtension + "_export.ms", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
|
||||
def generateTaggedMaxScript(processName, fileExtension):
|
||||
dateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
|
||||
processDir = ScriptDirectory + "/processes/" + processName
|
||||
mkPath(log, processDir)
|
||||
|
||||
generateTaggedMaxScriptFile(processDir, processName, fileExtension, "_invalid", "_invalid", "_invalid", "_invalid", dateTimeStamp)
|
||||
|
||||
def generateTaggedMaxExporter(processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable):
|
||||
dateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
|
||||
processDir = ScriptDirectory + "/processes/" + processName
|
||||
mkPath(log, processDir)
|
||||
|
||||
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 + "/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(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"):
|
||||
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"):
|
||||
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)
|
||||
|
||||
|
||||
|
||||
generateTaggedMaxExporter("pacs_prim", "pacs_prim", "PacsPrimSourceDirectories", "PacsPrimExportDirectory", "PacsPrimTagExportDirectory", "PacsPrimInstallDirectory")
|
||||
|
||||
generateTaggedMaxExporter("clodbank", "clod", "ClodSourceDirectories", "ClodExportDirectory", "ClodTagExportDirectory", "ClodInstallDirectory")
|
||||
|
||||
generateTaggedMaxScript("ig", "ig")
|
||||
|
||||
generateTaggedMaxExporter("rbank", "cmb", "RBankCmbSourceDirectories", "RBankCmbExportDirectory", "RBankCmbTagExportDirectory", "PacsInstallDirectory")
|
||||
|
||||
generateTaggedMaxExporter("veget", "veget", "VegetSourceDirectories", "VegetExportDirectory", "VegetTagExportDirectory", "VegetInstallDirectory")
|
||||
|
||||
generateTaggedMaxScript("shape", "shape")
|
||||
|
||||
generateTaggedMaxExporter("anim", "anim", "AnimSourceDirectories", "AnimExportDirectory", "AnimTagExportDirectory", "AnimInstallDirectory")
|
||||
|
||||
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
#!/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
|
||||
sys.path.append("../configuration")
|
||||
if os.path.isfile("generate_tagged_max_exporters.log"):
|
||||
os.remove("generate_tagged_max_exporters.log")
|
||||
log = open("generate_tagged_max_exporters.log", "w")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from tools import *
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Generate tagged max exporters")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
templateDir = os.getcwd().replace("\\", "/") + "/tagged_max_exporter_template"
|
||||
mkPath(log, templateDir)
|
||||
scriptDir = os.getcwd().replace("\\", "/") + "/max_exporter_scripts"
|
||||
mkPath(log, scriptDir)
|
||||
|
||||
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 = newline.replace("%PreGenDateTimeStamp%", dateTimeStamp)
|
||||
newline = newline.replace("%PreGenProcessName%", processName)
|
||||
newline = newline.replace("%PreGenFileExtension%", fileExtension)
|
||||
newline = newline.replace("%PreGenSourceDirectoriesVariable%", sourceDirectoriesVariable)
|
||||
newline = newline.replace("%PreGenExportDirectoryVariable%", exportDirectoryVariable)
|
||||
newline = newline.replace("%PreGenTagExportDirectoryVariable%", tagExportDirectoryVariable)
|
||||
newline = newline.replace("%PreGenInstallDirectoryVariable%", clientDirectoryVariable)
|
||||
return newline
|
||||
|
||||
def generateTaggedMaxExporterFile(sourceFile, destFile, writeMode, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||
srcf = open(sourceFile, "r")
|
||||
dstf = open(destFile, writeMode)
|
||||
printLog(log, "WRITE " + destFile + " " + writeMode)
|
||||
for line in srcf:
|
||||
dstf.write(processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp))
|
||||
dstf.close()
|
||||
srcf.close()
|
||||
|
||||
def generateTaggedMaxScriptFile(processDir, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||
maxscriptDir = processDir + "/maxscript"
|
||||
mkPath(log, maxscriptDir)
|
||||
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(templateDir + "/export_footer.ms", maxscriptDir + "/" + fileExtension + "_export.ms", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
|
||||
|
||||
def generateTaggedMaxScript(processName, fileExtension):
|
||||
dateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
|
||||
processDir = ScriptDirectory + "/processes/" + processName
|
||||
mkPath(log, processDir)
|
||||
|
||||
generateTaggedMaxScriptFile(processDir, processName, fileExtension, "_invalid", "_invalid", "_invalid", "_invalid", dateTimeStamp)
|
||||
|
||||
def generateTaggedMaxExporter(processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable):
|
||||
dateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
|
||||
processDir = ScriptDirectory + "/processes/" + processName
|
||||
mkPath(log, processDir)
|
||||
|
||||
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 + "/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(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"):
|
||||
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"):
|
||||
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)
|
||||
|
||||
|
||||
|
||||
generateTaggedMaxExporter("pacs_prim", "pacs_prim", "PacsPrimSourceDirectories", "PacsPrimExportDirectory", "PacsPrimTagExportDirectory", "PacsPrimInstallDirectory")
|
||||
|
||||
generateTaggedMaxExporter("clodbank", "clod", "ClodSourceDirectories", "ClodExportDirectory", "ClodTagExportDirectory", "ClodInstallDirectory")
|
||||
|
||||
generateTaggedMaxScript("ig", "ig")
|
||||
|
||||
generateTaggedMaxExporter("rbank", "cmb", "RBankCmbSourceDirectories", "RBankCmbExportDirectory", "RBankCmbTagExportDirectory", "PacsInstallDirectory")
|
||||
|
||||
generateTaggedMaxExporter("veget", "veget", "VegetSourceDirectories", "VegetExportDirectory", "VegetTagExportDirectory", "VegetInstallDirectory")
|
||||
|
||||
generateTaggedMaxScript("shape", "shape")
|
||||
|
||||
generateTaggedMaxExporter("anim", "anim", "AnimSourceDirectories", "AnimExportDirectory", "AnimTagExportDirectory", "AnimInstallDirectory")
|
||||
|
||||
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
|
||||
# Remove bad file from previous script version
|
||||
listPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable% + "/landscape_col_prim_pacs_list.txt"
|
||||
if os.path.isfile(listPath):
|
||||
os.remove(listPath)
|
||||
|
||||
|
||||
|
||||
# Remove bad file from previous script version
|
||||
listPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable% + "/landscape_col_prim_pacs_list.txt"
|
||||
if os.path.isfile(listPath):
|
||||
os.remove(listPath)
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
|
||||
|
||||
printLog(log, ">>> Export skel directly <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + SkelExportDirectory)
|
||||
for dir in SkelSourceDirectories:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
copyFilesExtNoSubdirIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + SkelExportDirectory, ".skel")
|
||||
|
||||
|
||||
|
||||
printLog(log, ">>> Export skel directly <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + SkelExportDirectory)
|
||||
for dir in SkelSourceDirectories:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
copyFilesExtNoSubdirIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + SkelExportDirectory, ".skel")
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
|
||||
|
||||
printLog(log, ">>> Try to copy ligo zone if any <<<")
|
||||
printLog(log, "********************************")
|
||||
printLog(log, "******** TODO ********")
|
||||
printLog(log, "********************************")
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
|
||||
printLog(log, ">>> Try to copy ligo zone if any <<<")
|
||||
printLog(log, "********************************")
|
||||
printLog(log, "******** TODO ********")
|
||||
printLog(log, "********************************")
|
||||
printLog(log, "")
|
||||
|
||||
|
@ -1,65 +1,65 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 0_setup.py
|
||||
# \brief setup %PreGenProcessName%
|
||||
# \date %PreGenDateTimeStamp%
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Setup %PreGenProcessName%
|
||||
#
|
||||
# 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 %PreGenProcessName%")
|
||||
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 <<<")
|
||||
for dir in %PreGenSourceDirectoriesVariable%:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
|
||||
# Setup export directories
|
||||
printLog(log, ">>> Setup export directories <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%)
|
||||
|
||||
# Setup build directories
|
||||
printLog(log, ">>> Setup build directories <<<")
|
||||
|
||||
# Setup client directories
|
||||
printLog(log, ">>> Setup client directories <<<")
|
||||
mkPath(log, InstallDirectory + "/" + %PreGenInstallDirectoryVariable%)
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 0_setup.py
|
||||
# \brief setup %PreGenProcessName%
|
||||
# \date %PreGenDateTimeStamp%
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Setup %PreGenProcessName%
|
||||
#
|
||||
# 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 %PreGenProcessName%")
|
||||
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 <<<")
|
||||
for dir in %PreGenSourceDirectoriesVariable%:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
|
||||
# Setup export directories
|
||||
printLog(log, ">>> Setup export directories <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%)
|
||||
|
||||
# Setup build directories
|
||||
printLog(log, ">>> Setup build directories <<<")
|
||||
|
||||
# Setup client directories
|
||||
printLog(log, ">>> Setup client directories <<<")
|
||||
mkPath(log, InstallDirectory + "/" + %PreGenInstallDirectoryVariable%)
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,92 +1,92 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# #################################################################
|
||||
# ## %PreGenWarning%
|
||||
# #################################################################
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Export %PreGenProcessName%
|
||||
# \date %PreGenDateTimeStamp%
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Export %PreGenProcessName%
|
||||
#
|
||||
# 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 %PreGenProcessName%")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
# Find tools
|
||||
# ...
|
||||
|
||||
# Export %PreGenProcessName% 3dsmax
|
||||
if MaxAvailable:
|
||||
# Find tools
|
||||
Max = findMax(log, MaxDirectory, MaxExecutable)
|
||||
printLog(log, "")
|
||||
|
||||
printLog(log, ">>> Export %PreGenProcessName% 3dsmax <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%)
|
||||
for dir in %PreGenSourceDirectoriesVariable%:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
if (needUpdateDirByTagLog(log, DatabaseDirectory + "/" + dir, ".max", ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%, ".%PreGenFileExtension%")):
|
||||
scriptSrc = "maxscript/%PreGenFileExtension%_export.ms"
|
||||
scriptDst = MaxUserDirectory + "/scripts/%PreGenFileExtension%_export.ms"
|
||||
outputLogfile = ScriptDirectory + "/processes/%PreGenProcessName%/log.log"
|
||||
outputDirectory = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
|
||||
maxSourceDir = DatabaseDirectory + "/" + dir
|
||||
tagList = findFiles(log, outputDirectory, "", ".%PreGenFileExtension%")
|
||||
tagLen = len(tagList)
|
||||
if os.path.isfile(scriptDst):
|
||||
os.remove(scriptDst)
|
||||
tagDiff = 1
|
||||
sSrc = open(scriptSrc, "r")
|
||||
sDst = open(scriptDst, "w")
|
||||
for line in sSrc:
|
||||
newline = line.replace("%OutputLogfile%", outputLogfile)
|
||||
newline = newline.replace("%MaxSourceDirectory%", maxSourceDir)
|
||||
newline = newline.replace("%OutputDirectory%", outputDirectory)
|
||||
sDst.write(newline)
|
||||
sSrc.close()
|
||||
sDst.close()
|
||||
while tagDiff > 0:
|
||||
printLog(log, "MAXSCRIPT " + scriptDst)
|
||||
subprocess.call([ Max, "-U", "MAXScript", "%PreGenFileExtension%_export.ms", "-q", "-mi", "-mip" ])
|
||||
tagList = findFiles(log, outputDirectory, "", ".%PreGenFileExtension%")
|
||||
newTagLen = len(tagList)
|
||||
tagDiff = newTagLen - tagLen
|
||||
tagLen = newTagLen
|
||||
printLog(log, "Exported " + str(tagDiff) + " .%PreGenFileExtension% files!")
|
||||
os.remove(scriptDst)
|
||||
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# #################################################################
|
||||
# ## %PreGenWarning%
|
||||
# #################################################################
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Export %PreGenProcessName%
|
||||
# \date %PreGenDateTimeStamp%
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Export %PreGenProcessName%
|
||||
#
|
||||
# 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 %PreGenProcessName%")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
# Find tools
|
||||
# ...
|
||||
|
||||
# Export %PreGenProcessName% 3dsmax
|
||||
if MaxAvailable:
|
||||
# Find tools
|
||||
Max = findMax(log, MaxDirectory, MaxExecutable)
|
||||
printLog(log, "")
|
||||
|
||||
printLog(log, ">>> Export %PreGenProcessName% 3dsmax <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%)
|
||||
for dir in %PreGenSourceDirectoriesVariable%:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
if (needUpdateDirByTagLog(log, DatabaseDirectory + "/" + dir, ".max", ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%, ".%PreGenFileExtension%")):
|
||||
scriptSrc = "maxscript/%PreGenFileExtension%_export.ms"
|
||||
scriptDst = MaxUserDirectory + "/scripts/%PreGenFileExtension%_export.ms"
|
||||
outputLogfile = ScriptDirectory + "/processes/%PreGenProcessName%/log.log"
|
||||
outputDirectory = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
|
||||
maxSourceDir = DatabaseDirectory + "/" + dir
|
||||
tagList = findFiles(log, outputDirectory, "", ".%PreGenFileExtension%")
|
||||
tagLen = len(tagList)
|
||||
if os.path.isfile(scriptDst):
|
||||
os.remove(scriptDst)
|
||||
tagDiff = 1
|
||||
sSrc = open(scriptSrc, "r")
|
||||
sDst = open(scriptDst, "w")
|
||||
for line in sSrc:
|
||||
newline = line.replace("%OutputLogfile%", outputLogfile)
|
||||
newline = newline.replace("%MaxSourceDirectory%", maxSourceDir)
|
||||
newline = newline.replace("%OutputDirectory%", outputDirectory)
|
||||
sDst.write(newline)
|
||||
sSrc.close()
|
||||
sDst.close()
|
||||
while tagDiff > 0:
|
||||
printLog(log, "MAXSCRIPT " + scriptDst)
|
||||
subprocess.call([ Max, "-U", "MAXScript", "%PreGenFileExtension%_export.ms", "-q", "-mi", "-mip" ])
|
||||
tagList = findFiles(log, outputDirectory, "", ".%PreGenFileExtension%")
|
||||
newTagLen = len(tagList)
|
||||
tagDiff = newTagLen - tagLen
|
||||
tagLen = newTagLen
|
||||
printLog(log, "Exported " + str(tagDiff) + " .%PreGenFileExtension% files!")
|
||||
os.remove(scriptDst)
|
||||
|
||||
|
@ -1,49 +1,49 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 2_build.py
|
||||
# \brief Build %PreGenProcessName%
|
||||
# \date %PreGenDateTimeStamp%
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Build %PreGenProcessName%
|
||||
#
|
||||
# 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 %PreGenProcessName%")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 2_build.py
|
||||
# \brief Build %PreGenProcessName%
|
||||
# \date %PreGenDateTimeStamp%
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Build %PreGenProcessName%
|
||||
#
|
||||
# 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 %PreGenProcessName%")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,57 +1,57 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 3_install.py
|
||||
# \brief Install %PreGenProcessName%
|
||||
# \date %PreGenDateTimeStamp%
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install %PreGenProcessName%
|
||||
#
|
||||
# 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, "--- Install %PreGenProcessName%")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
printLog(log, ">>> Install %PreGenProcessName% <<<")
|
||||
exportPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
|
||||
mkPath(log, exportPath)
|
||||
installPath = InstallDirectory + "/" + %PreGenInstallDirectoryVariable%
|
||||
mkPath(log, installPath)
|
||||
copyFilesExtNoSubdirIfNeeded(log, exportPath, installPath, ".%PreGenFileExtension%")
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 3_install.py
|
||||
# \brief Install %PreGenProcessName%
|
||||
# \date %PreGenDateTimeStamp%
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install %PreGenProcessName%
|
||||
#
|
||||
# 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, "--- Install %PreGenProcessName%")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
printLog(log, ">>> Install %PreGenProcessName% <<<")
|
||||
exportPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
|
||||
mkPath(log, exportPath)
|
||||
installPath = InstallDirectory + "/" + %PreGenInstallDirectoryVariable%
|
||||
mkPath(log, installPath)
|
||||
copyFilesExtNoSubdirIfNeeded(log, exportPath, installPath, ".%PreGenFileExtension%")
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,66 +1,66 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 0_setup.py
|
||||
# \brief setup %PreGenProcessName%
|
||||
# \date %PreGenDateTimeStamp%
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Setup %PreGenProcessName%
|
||||
#
|
||||
# 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 %PreGenProcessName%")
|
||||
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 <<<")
|
||||
for dir in %PreGenSourceDirectoriesVariable%:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
|
||||
# Setup export directories
|
||||
printLog(log, ">>> Setup export directories <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%)
|
||||
mkPath(log, ExportBuildDirectory + "/" + %PreGenTagExportDirectoryVariable%)
|
||||
|
||||
# Setup build directories
|
||||
printLog(log, ">>> Setup build directories <<<")
|
||||
|
||||
# Setup client directories
|
||||
printLog(log, ">>> Setup client directories <<<")
|
||||
mkPath(log, InstallDirectory + "/" + %PreGenInstallDirectoryVariable%)
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 0_setup.py
|
||||
# \brief setup %PreGenProcessName%
|
||||
# \date %PreGenDateTimeStamp%
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Setup %PreGenProcessName%
|
||||
#
|
||||
# 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 %PreGenProcessName%")
|
||||
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 <<<")
|
||||
for dir in %PreGenSourceDirectoriesVariable%:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
|
||||
# Setup export directories
|
||||
printLog(log, ">>> Setup export directories <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%)
|
||||
mkPath(log, ExportBuildDirectory + "/" + %PreGenTagExportDirectoryVariable%)
|
||||
|
||||
# Setup build directories
|
||||
printLog(log, ">>> Setup build directories <<<")
|
||||
|
||||
# Setup client directories
|
||||
printLog(log, ">>> Setup client directories <<<")
|
||||
mkPath(log, InstallDirectory + "/" + %PreGenInstallDirectoryVariable%)
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,9 +1,9 @@
|
||||
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
shutil.move("temp_log.log", "log.log")
|
||||
|
||||
|
||||
# end of file
|
||||
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
shutil.move("temp_log.log", "log.log")
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,130 +1,130 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# #################################################################
|
||||
# ## %PreGenWarning%
|
||||
# #################################################################
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Export %PreGenProcessName%
|
||||
# \date %PreGenDateTimeStamp%
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Export %PreGenProcessName%
|
||||
#
|
||||
# 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")
|
||||
if os.path.isfile("temp_log.log"):
|
||||
os.remove("temp_log.log")
|
||||
log = open("temp_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 %PreGenProcessName%")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
# Find tools
|
||||
# ...
|
||||
|
||||
# Export %PreGenProcessName% 3dsmax
|
||||
if MaxAvailable:
|
||||
# Find tools
|
||||
Max = findMax(log, MaxDirectory, MaxExecutable)
|
||||
printLog(log, "")
|
||||
|
||||
printLog(log, ">>> Export %PreGenProcessName% 3dsmax <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%)
|
||||
mkPath(log, ExportBuildDirectory + "/" + %PreGenTagExportDirectoryVariable%)
|
||||
for dir in %PreGenSourceDirectoriesVariable%:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
if (needUpdateDirByTagLog(log, DatabaseDirectory + "/" + dir, ".max", ExportBuildDirectory + "/" + %PreGenTagExportDirectoryVariable%, ".max.tag")):
|
||||
scriptSrc = "maxscript/%PreGenFileExtension%_export.ms"
|
||||
scriptDst = MaxUserDirectory + "/scripts/%PreGenFileExtension%_export.ms"
|
||||
outputLogfile = ScriptDirectory + "/processes/%PreGenProcessName%/log.log"
|
||||
outputDirectory = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
|
||||
tagDirectory = ExportBuildDirectory + "/" + %PreGenTagExportDirectoryVariable%
|
||||
maxSourceDir = DatabaseDirectory + "/" + dir
|
||||
maxRunningTagFile = tagDirectory + "/max_running.tag"
|
||||
tagList = findFiles(log, tagDirectory, "", ".max.tag")
|
||||
tagLen = len(tagList)
|
||||
if os.path.isfile(scriptDst):
|
||||
os.remove(scriptDst)
|
||||
tagDiff = 1
|
||||
sSrc = open(scriptSrc, "r")
|
||||
sDst = open(scriptDst, "w")
|
||||
for line in sSrc:
|
||||
newline = line.replace("%OutputLogfile%", outputLogfile)
|
||||
newline = newline.replace("%MaxSourceDirectory%", maxSourceDir)
|
||||
newline = newline.replace("%OutputDirectory%", outputDirectory)
|
||||
newline = newline.replace("%TagDirectory%", tagDirectory)
|
||||
sDst.write(newline)
|
||||
sSrc.close()
|
||||
sDst.close()
|
||||
zeroRetryLimit = 3
|
||||
while tagDiff > 0:
|
||||
mrt = open(maxRunningTagFile, "w")
|
||||
mrt.write("moe-moe-kyun")
|
||||
mrt.close()
|
||||
printLog(log, "MAXSCRIPT " + scriptDst)
|
||||
subprocess.call([ Max, "-U", "MAXScript", "%PreGenFileExtension%_export.ms", "-q", "-mi", "-mip" ])
|
||||
if os.path.exists(outputLogfile):
|
||||
try:
|
||||
lSrc = open(outputLogfile, "r")
|
||||
for line in lSrc:
|
||||
lineStrip = line.strip()
|
||||
if (len(lineStrip) > 0):
|
||||
printLog(log, lineStrip)
|
||||
lSrc.close()
|
||||
os.remove(outputLogfile)
|
||||
except Exception:
|
||||
printLog(log, "ERROR Failed to read 3dsmax log")
|
||||
else:
|
||||
printLog(log, "WARNING No 3dsmax log")
|
||||
tagList = findFiles(log, tagDirectory, "", ".max.tag")
|
||||
newTagLen = len(tagList)
|
||||
tagDiff = newTagLen - tagLen
|
||||
tagLen = newTagLen
|
||||
addTagDiff = 0
|
||||
if os.path.exists(maxRunningTagFile):
|
||||
printLog(log, "FAIL 3ds Max crashed and/or file export failed!")
|
||||
if tagDiff == 0:
|
||||
if zeroRetryLimit > 0:
|
||||
zeroRetryLimit = zeroRetryLimit - 1
|
||||
addTagDiff = 1
|
||||
else:
|
||||
printLog(log, "FAIL Retry limit reached!")
|
||||
else:
|
||||
addTagDiff = 1
|
||||
os.remove(maxRunningTagFile)
|
||||
printLog(log, "Exported " + str(tagDiff) + " .max files!")
|
||||
tagDiff += addTagDiff
|
||||
os.remove(scriptDst)
|
||||
printLog(log, "")
|
||||
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# #################################################################
|
||||
# ## %PreGenWarning%
|
||||
# #################################################################
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Export %PreGenProcessName%
|
||||
# \date %PreGenDateTimeStamp%
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Export %PreGenProcessName%
|
||||
#
|
||||
# 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")
|
||||
if os.path.isfile("temp_log.log"):
|
||||
os.remove("temp_log.log")
|
||||
log = open("temp_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 %PreGenProcessName%")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
# Find tools
|
||||
# ...
|
||||
|
||||
# Export %PreGenProcessName% 3dsmax
|
||||
if MaxAvailable:
|
||||
# Find tools
|
||||
Max = findMax(log, MaxDirectory, MaxExecutable)
|
||||
printLog(log, "")
|
||||
|
||||
printLog(log, ">>> Export %PreGenProcessName% 3dsmax <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%)
|
||||
mkPath(log, ExportBuildDirectory + "/" + %PreGenTagExportDirectoryVariable%)
|
||||
for dir in %PreGenSourceDirectoriesVariable%:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
if (needUpdateDirByTagLog(log, DatabaseDirectory + "/" + dir, ".max", ExportBuildDirectory + "/" + %PreGenTagExportDirectoryVariable%, ".max.tag")):
|
||||
scriptSrc = "maxscript/%PreGenFileExtension%_export.ms"
|
||||
scriptDst = MaxUserDirectory + "/scripts/%PreGenFileExtension%_export.ms"
|
||||
outputLogfile = ScriptDirectory + "/processes/%PreGenProcessName%/log.log"
|
||||
outputDirectory = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
|
||||
tagDirectory = ExportBuildDirectory + "/" + %PreGenTagExportDirectoryVariable%
|
||||
maxSourceDir = DatabaseDirectory + "/" + dir
|
||||
maxRunningTagFile = tagDirectory + "/max_running.tag"
|
||||
tagList = findFiles(log, tagDirectory, "", ".max.tag")
|
||||
tagLen = len(tagList)
|
||||
if os.path.isfile(scriptDst):
|
||||
os.remove(scriptDst)
|
||||
tagDiff = 1
|
||||
sSrc = open(scriptSrc, "r")
|
||||
sDst = open(scriptDst, "w")
|
||||
for line in sSrc:
|
||||
newline = line.replace("%OutputLogfile%", outputLogfile)
|
||||
newline = newline.replace("%MaxSourceDirectory%", maxSourceDir)
|
||||
newline = newline.replace("%OutputDirectory%", outputDirectory)
|
||||
newline = newline.replace("%TagDirectory%", tagDirectory)
|
||||
sDst.write(newline)
|
||||
sSrc.close()
|
||||
sDst.close()
|
||||
zeroRetryLimit = 3
|
||||
while tagDiff > 0:
|
||||
mrt = open(maxRunningTagFile, "w")
|
||||
mrt.write("moe-moe-kyun")
|
||||
mrt.close()
|
||||
printLog(log, "MAXSCRIPT " + scriptDst)
|
||||
subprocess.call([ Max, "-U", "MAXScript", "%PreGenFileExtension%_export.ms", "-q", "-mi", "-mip" ])
|
||||
if os.path.exists(outputLogfile):
|
||||
try:
|
||||
lSrc = open(outputLogfile, "r")
|
||||
for line in lSrc:
|
||||
lineStrip = line.strip()
|
||||
if (len(lineStrip) > 0):
|
||||
printLog(log, lineStrip)
|
||||
lSrc.close()
|
||||
os.remove(outputLogfile)
|
||||
except Exception:
|
||||
printLog(log, "ERROR Failed to read 3dsmax log")
|
||||
else:
|
||||
printLog(log, "WARNING No 3dsmax log")
|
||||
tagList = findFiles(log, tagDirectory, "", ".max.tag")
|
||||
newTagLen = len(tagList)
|
||||
tagDiff = newTagLen - tagLen
|
||||
tagLen = newTagLen
|
||||
addTagDiff = 0
|
||||
if os.path.exists(maxRunningTagFile):
|
||||
printLog(log, "FAIL 3ds Max crashed and/or file export failed!")
|
||||
if tagDiff == 0:
|
||||
if zeroRetryLimit > 0:
|
||||
zeroRetryLimit = zeroRetryLimit - 1
|
||||
addTagDiff = 1
|
||||
else:
|
||||
printLog(log, "FAIL Retry limit reached!")
|
||||
else:
|
||||
addTagDiff = 1
|
||||
os.remove(maxRunningTagFile)
|
||||
printLog(log, "Exported " + str(tagDiff) + " .max files!")
|
||||
tagDiff += addTagDiff
|
||||
os.remove(scriptDst)
|
||||
printLog(log, "")
|
||||
|
||||
|
@ -1,49 +1,49 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 2_build.py
|
||||
# \brief Build %PreGenProcessName%
|
||||
# \date %PreGenDateTimeStamp%
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Build %PreGenProcessName%
|
||||
#
|
||||
# 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 %PreGenProcessName%")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 2_build.py
|
||||
# \brief Build %PreGenProcessName%
|
||||
# \date %PreGenDateTimeStamp%
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Build %PreGenProcessName%
|
||||
#
|
||||
# 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 %PreGenProcessName%")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,57 +1,57 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 3_install.py
|
||||
# \brief Install %PreGenProcessName%
|
||||
# \date %PreGenDateTimeStamp%
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install %PreGenProcessName%
|
||||
#
|
||||
# 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, "--- Install %PreGenProcessName%")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
printLog(log, ">>> Install %PreGenProcessName% <<<")
|
||||
exportPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
|
||||
mkPath(log, exportPath)
|
||||
installPath = InstallDirectory + "/" + %PreGenInstallDirectoryVariable%
|
||||
mkPath(log, installPath)
|
||||
copyFilesNoTreeIfNeeded(log, exportPath, installPath)
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 3_install.py
|
||||
# \brief Install %PreGenProcessName%
|
||||
# \date %PreGenDateTimeStamp%
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install %PreGenProcessName%
|
||||
#
|
||||
# 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, "--- Install %PreGenProcessName%")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
printLog(log, ">>> Install %PreGenProcessName% <<<")
|
||||
exportPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
|
||||
mkPath(log, exportPath)
|
||||
installPath = InstallDirectory + "/" + %PreGenInstallDirectoryVariable%
|
||||
mkPath(log, installPath)
|
||||
copyFilesNoTreeIfNeeded(log, exportPath, installPath)
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,89 +1,89 @@
|
||||
#!/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()
|
||||
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
||||
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
||||
args = parser.parse_args()
|
||||
|
||||
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 project")
|
||||
#printLog(log, "-------")
|
||||
#printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
#printLog(log, "")
|
||||
|
||||
#printLog(log, "")
|
||||
#printLog(log, "-------")
|
||||
#printLog(log, "--- Setup client directories")
|
||||
#printLog(log, "-------")
|
||||
#printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
#printLog(log, "")
|
||||
#for dir in ClientSetupDirectories:
|
||||
# mkPath(log, InstallDirectory + "/" + dir)
|
||||
#printLog(log, "")
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Run the setup processes")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
# For each process
|
||||
for processName in ProcessToComplete:
|
||||
if ((args.includeprocess == None or processName in args.includeprocess) and (args.excludeprocess == None or not processName in args.excludeprocess)):
|
||||
printLog(log, "PROCESS " + processName)
|
||||
os.chdir(processName)
|
||||
try:
|
||||
subprocess.call([ "python", "0_setup.py" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
os.chdir("..")
|
||||
try:
|
||||
processLog = open(processName + "/log.log", "r")
|
||||
processLogData = processLog.read()
|
||||
processLog.close()
|
||||
log.write(processLogData)
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
# subprocess.call("idle.bat")
|
||||
else:
|
||||
printLog(log, "IGNORE PROCESS " + processName)
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
#!/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()
|
||||
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
||||
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
||||
args = parser.parse_args()
|
||||
|
||||
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 project")
|
||||
#printLog(log, "-------")
|
||||
#printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
#printLog(log, "")
|
||||
|
||||
#printLog(log, "")
|
||||
#printLog(log, "-------")
|
||||
#printLog(log, "--- Setup client directories")
|
||||
#printLog(log, "-------")
|
||||
#printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
#printLog(log, "")
|
||||
#for dir in ClientSetupDirectories:
|
||||
# mkPath(log, InstallDirectory + "/" + dir)
|
||||
#printLog(log, "")
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Run the setup processes")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
# For each process
|
||||
for processName in ProcessToComplete:
|
||||
if ((args.includeprocess == None or processName in args.includeprocess) and (args.excludeprocess == None or not processName in args.excludeprocess)):
|
||||
printLog(log, "PROCESS " + processName)
|
||||
os.chdir(processName)
|
||||
try:
|
||||
subprocess.call([ "python", "0_setup.py" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
os.chdir("..")
|
||||
try:
|
||||
processLog = open(processName + "/log.log", "r")
|
||||
processLogData = processLog.read()
|
||||
processLog.close()
|
||||
log.write(processLogData)
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
# subprocess.call("idle.bat")
|
||||
else:
|
||||
printLog(log, "IGNORE PROCESS " + processName)
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
@ -1,73 +1,73 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Run all export processes
|
||||
# \date 2009-02-18 09:22GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all export 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()
|
||||
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
||||
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
||||
args = parser.parse_args()
|
||||
|
||||
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 *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Run the export processes")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
# For each process
|
||||
for processName in ProcessToComplete:
|
||||
if ((args.includeprocess == None or processName in args.includeprocess) and (args.excludeprocess == None or not processName in args.excludeprocess)):
|
||||
printLog(log, "PROCESS " + processName)
|
||||
os.chdir(processName)
|
||||
try:
|
||||
subprocess.call([ "python", "1_export.py" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
os.chdir("..")
|
||||
try:
|
||||
processLog = open(processName + "/log.log", "r")
|
||||
processLogData = processLog.read()
|
||||
processLog.close()
|
||||
log.write(processLogData)
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
# subprocess.call("idle.bat")
|
||||
else:
|
||||
printLog(log, "IGNORE PROCESS " + processName)
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Run all export processes
|
||||
# \date 2009-02-18 09:22GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all export 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()
|
||||
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
||||
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
||||
args = parser.parse_args()
|
||||
|
||||
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 *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Run the export processes")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
# For each process
|
||||
for processName in ProcessToComplete:
|
||||
if ((args.includeprocess == None or processName in args.includeprocess) and (args.excludeprocess == None or not processName in args.excludeprocess)):
|
||||
printLog(log, "PROCESS " + processName)
|
||||
os.chdir(processName)
|
||||
try:
|
||||
subprocess.call([ "python", "1_export.py" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
os.chdir("..")
|
||||
try:
|
||||
processLog = open(processName + "/log.log", "r")
|
||||
processLogData = processLog.read()
|
||||
processLog.close()
|
||||
log.write(processLogData)
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
# subprocess.call("idle.bat")
|
||||
else:
|
||||
printLog(log, "IGNORE PROCESS " + processName)
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
@ -1,73 +1,73 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 2_build.py
|
||||
# \brief Run all build processes
|
||||
# \date 2009-02-18 09:22GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all build 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()
|
||||
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
||||
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
||||
args = parser.parse_args()
|
||||
|
||||
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 *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Run the build processes")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
# For each process
|
||||
for processName in ProcessToComplete:
|
||||
if ((args.includeprocess == None or processName in args.includeprocess) and (args.excludeprocess == None or not processName in args.excludeprocess)):
|
||||
printLog(log, "PROCESS " + processName)
|
||||
os.chdir(processName)
|
||||
try:
|
||||
subprocess.call([ "python", "2_build.py" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
os.chdir("..")
|
||||
try:
|
||||
processLog = open(processName + "/log.log", "r")
|
||||
processLogData = processLog.read()
|
||||
processLog.close()
|
||||
log.write(processLogData)
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
# subprocess.call("idle.bat")
|
||||
else:
|
||||
printLog(log, "IGNORE PROCESS " + processName)
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 2_build.py
|
||||
# \brief Run all build processes
|
||||
# \date 2009-02-18 09:22GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all build 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()
|
||||
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
||||
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
||||
args = parser.parse_args()
|
||||
|
||||
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 *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Run the build processes")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
# For each process
|
||||
for processName in ProcessToComplete:
|
||||
if ((args.includeprocess == None or processName in args.includeprocess) and (args.excludeprocess == None or not processName in args.excludeprocess)):
|
||||
printLog(log, "PROCESS " + processName)
|
||||
os.chdir(processName)
|
||||
try:
|
||||
subprocess.call([ "python", "2_build.py" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
os.chdir("..")
|
||||
try:
|
||||
processLog = open(processName + "/log.log", "r")
|
||||
processLogData = processLog.read()
|
||||
processLog.close()
|
||||
log.write(processLogData)
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
# subprocess.call("idle.bat")
|
||||
else:
|
||||
printLog(log, "IGNORE PROCESS " + processName)
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
@ -1,72 +1,72 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 3_install.py
|
||||
# \brief Run all install processes
|
||||
# \date 2009-02-18 16:19GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all install 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()
|
||||
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
||||
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
||||
args = parser.parse_args()
|
||||
|
||||
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, "--- Run the install processes")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
# For each process
|
||||
for processName in ProcessToComplete:
|
||||
if ((args.includeprocess == None or processName in args.includeprocess) and (args.excludeprocess == None or not processName in args.excludeprocess)):
|
||||
printLog(log, "PROCESS " + processName)
|
||||
os.chdir(processName)
|
||||
try:
|
||||
subprocess.call([ "python", "3_install.py" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
os.chdir("..")
|
||||
try:
|
||||
processLog = open(processName + "/log.log", "r")
|
||||
processLogData = processLog.read()
|
||||
processLog.close()
|
||||
log.write(processLogData)
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
# subprocess.call("idle.bat")
|
||||
else:
|
||||
printLog(log, "IGNORE PROCESS " + processName)
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 3_install.py
|
||||
# \brief Run all install processes
|
||||
# \date 2009-02-18 16:19GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all install 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()
|
||||
parser.add_argument('--includeprocess', '-ipc', nargs='+')
|
||||
parser.add_argument('--excludeprocess', '-epc', nargs='+')
|
||||
args = parser.parse_args()
|
||||
|
||||
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, "--- Run the install processes")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
# For each process
|
||||
for processName in ProcessToComplete:
|
||||
if ((args.includeprocess == None or processName in args.includeprocess) and (args.excludeprocess == None or not processName in args.excludeprocess)):
|
||||
printLog(log, "PROCESS " + processName)
|
||||
os.chdir(processName)
|
||||
try:
|
||||
subprocess.call([ "python", "3_install.py" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
os.chdir("..")
|
||||
try:
|
||||
processLog = open(processName + "/log.log", "r")
|
||||
processLogData = processLog.read()
|
||||
processLog.close()
|
||||
log.write(processLogData)
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
# subprocess.call("idle.bat")
|
||||
else:
|
||||
printLog(log, "IGNORE PROCESS " + processName)
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
@ -1,66 +1,66 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 0_setup.py
|
||||
# \brief setup dummy
|
||||
# \date 2010-05-24 13:42GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Setup dummy
|
||||
#
|
||||
# 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 dummy")
|
||||
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 <<<")
|
||||
#for dir in MapSourceDirectories:
|
||||
# mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
|
||||
# Setup export directories
|
||||
printLog(log, ">>> Setup export directories <<<")
|
||||
#mkPath(log, ExportBuildDirectory + "/" + DummyTagExportDirectory)
|
||||
|
||||
# Setup build directories
|
||||
printLog(log, ">>> Setup build directories <<<")
|
||||
#mkPath(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory)
|
||||
|
||||
# Setup client directories
|
||||
printLog(log, ">>> Setup client directories <<<")
|
||||
#mkPath(log, InstallDirectory + "/" + DummyInstallDirectory)
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 0_setup.py
|
||||
# \brief setup dummy
|
||||
# \date 2010-05-24 13:42GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Setup dummy
|
||||
#
|
||||
# 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 dummy")
|
||||
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 <<<")
|
||||
#for dir in MapSourceDirectories:
|
||||
# mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
|
||||
# Setup export directories
|
||||
printLog(log, ">>> Setup export directories <<<")
|
||||
#mkPath(log, ExportBuildDirectory + "/" + DummyTagExportDirectory)
|
||||
|
||||
# Setup build directories
|
||||
printLog(log, ">>> Setup build directories <<<")
|
||||
#mkPath(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory)
|
||||
|
||||
# Setup client directories
|
||||
printLog(log, ">>> Setup client directories <<<")
|
||||
#mkPath(log, InstallDirectory + "/" + DummyInstallDirectory)
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,117 +1,117 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Export dummy
|
||||
# \date 2010-05-24 13:42GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Export dummy
|
||||
#
|
||||
# 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 dummy")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
if MaxAvailable:
|
||||
# Find tools
|
||||
Max = findMax(log, MaxDirectory, MaxExecutable)
|
||||
# ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix)
|
||||
printLog(log, "")
|
||||
|
||||
# Export dummy 3dsmax
|
||||
printLog(log, ">>> Export dummy 3dsmax <<<")
|
||||
|
||||
# Build paths
|
||||
#scriptSrc = "maxscript/dummy_export.ms"
|
||||
# scriptDst = MaxDirectory + "/scripts/dummy_export.ms"
|
||||
#scriptDst = MaxUserDirectory + "/scripts/dummy_export.ms"
|
||||
#logFile = ScriptDirectory + "/processes/dummy/log.log"
|
||||
#outDirTag = ExportBuildDirectory + "/" + DummyTagExportDirectory
|
||||
#mkPath(log, outDirTag)
|
||||
#outDirWithoutCoarse = ExportBuildDirectory + "/" + DummyExportDirectory
|
||||
#mkPath(log, outDirWithoutCoarse)
|
||||
#outDirWithCoarse = ExportBuildDirectory + "/" + DummyWithCoarseMeshExportDirectory
|
||||
#mkPath(log, outDirWithCoarse)
|
||||
#outDirLightmap = ExportBuildDirectory + "/" + DummyLightmapNotOptimizedExportDirectory
|
||||
#mkPath(log, outDirLightmap)
|
||||
#outDirAnim = ExportBuildDirectory + "/" + DummyAnimExportDirectory
|
||||
#mkPath(log, outDirAnim)
|
||||
|
||||
#tagList = findFiles(log, outDirTag, "", ".tag")
|
||||
#tagLen = len(tagList)
|
||||
|
||||
# For each directoy
|
||||
#if os.path.isfile(scriptDst):
|
||||
# os.remove(scriptDst)
|
||||
#for dir in DummySourceDirectories:
|
||||
# tagDiff = 1
|
||||
# dummySourceDir = DatabaseDirectory + "/" + dir
|
||||
# mkPath(log, dummySourceDir)
|
||||
# sSrc = open(scriptSrc, "r")
|
||||
# sDst = open(scriptDst, "w")
|
||||
# for line in sSrc:
|
||||
# newline = line.replace("output_logfile", logFile)
|
||||
# newline = newline.replace("dummy_source_directory", dummySourceDir)
|
||||
# newline = newline.replace("output_directory_tag", outDirTag)
|
||||
# newline = newline.replace("output_directory_without_coarse_mesh", outDirWithoutCoarse)
|
||||
# newline = newline.replace("output_directory_with_coarse_mesh", outDirWithCoarse)
|
||||
# newline = newline.replace("dummy_export_opt_export_lighting", DummyExportOptExportLighting)
|
||||
# newline = newline.replace("dummy_export_opt_shadow", DummyExportOptShadow)
|
||||
# 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_oversampling", str(DummyExportOptOversampling))
|
||||
# newline = newline.replace("dummy_export_opt_lightmap_log", DummyExportOptLightmapLog)
|
||||
# newline = newline.replace("dummy_lightmap_path", outDirLightmap)
|
||||
# newline = newline.replace("output_directory_anim", outDirAnim)
|
||||
# sDst.write(newline)
|
||||
# sSrc.close()
|
||||
# sDst.close()
|
||||
# while tagDiff > 0:
|
||||
# printLog(log, "MAXSCRIPT " + scriptDst)
|
||||
# subprocess.call([ Max, "-U", "MAXScript", "dummy_export.ms", "-q", "-mi", "-mip" ])
|
||||
# tagList = findFiles(log, outDirTag, "", ".tag")
|
||||
# newTagLen = len(tagList)
|
||||
# tagDiff = newTagLen - tagLen
|
||||
# tagLen = newTagLen
|
||||
# printLog(log, "Exported " + str(tagDiff) + " .max files!")
|
||||
# tagDiff += hackBdummyTree() # force rerun also when bdummy tree deleted
|
||||
# os.remove(scriptDst)
|
||||
|
||||
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Export dummy
|
||||
# \date 2010-05-24 13:42GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Export dummy
|
||||
#
|
||||
# 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 dummy")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
if MaxAvailable:
|
||||
# Find tools
|
||||
Max = findMax(log, MaxDirectory, MaxExecutable)
|
||||
# ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix)
|
||||
printLog(log, "")
|
||||
|
||||
# Export dummy 3dsmax
|
||||
printLog(log, ">>> Export dummy 3dsmax <<<")
|
||||
|
||||
# Build paths
|
||||
#scriptSrc = "maxscript/dummy_export.ms"
|
||||
# scriptDst = MaxDirectory + "/scripts/dummy_export.ms"
|
||||
#scriptDst = MaxUserDirectory + "/scripts/dummy_export.ms"
|
||||
#logFile = ScriptDirectory + "/processes/dummy/log.log"
|
||||
#outDirTag = ExportBuildDirectory + "/" + DummyTagExportDirectory
|
||||
#mkPath(log, outDirTag)
|
||||
#outDirWithoutCoarse = ExportBuildDirectory + "/" + DummyExportDirectory
|
||||
#mkPath(log, outDirWithoutCoarse)
|
||||
#outDirWithCoarse = ExportBuildDirectory + "/" + DummyWithCoarseMeshExportDirectory
|
||||
#mkPath(log, outDirWithCoarse)
|
||||
#outDirLightmap = ExportBuildDirectory + "/" + DummyLightmapNotOptimizedExportDirectory
|
||||
#mkPath(log, outDirLightmap)
|
||||
#outDirAnim = ExportBuildDirectory + "/" + DummyAnimExportDirectory
|
||||
#mkPath(log, outDirAnim)
|
||||
|
||||
#tagList = findFiles(log, outDirTag, "", ".tag")
|
||||
#tagLen = len(tagList)
|
||||
|
||||
# For each directoy
|
||||
#if os.path.isfile(scriptDst):
|
||||
# os.remove(scriptDst)
|
||||
#for dir in DummySourceDirectories:
|
||||
# tagDiff = 1
|
||||
# dummySourceDir = DatabaseDirectory + "/" + dir
|
||||
# mkPath(log, dummySourceDir)
|
||||
# sSrc = open(scriptSrc, "r")
|
||||
# sDst = open(scriptDst, "w")
|
||||
# for line in sSrc:
|
||||
# newline = line.replace("output_logfile", logFile)
|
||||
# newline = newline.replace("dummy_source_directory", dummySourceDir)
|
||||
# newline = newline.replace("output_directory_tag", outDirTag)
|
||||
# newline = newline.replace("output_directory_without_coarse_mesh", outDirWithoutCoarse)
|
||||
# newline = newline.replace("output_directory_with_coarse_mesh", outDirWithCoarse)
|
||||
# newline = newline.replace("dummy_export_opt_export_lighting", DummyExportOptExportLighting)
|
||||
# newline = newline.replace("dummy_export_opt_shadow", DummyExportOptShadow)
|
||||
# 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_oversampling", str(DummyExportOptOversampling))
|
||||
# newline = newline.replace("dummy_export_opt_lightmap_log", DummyExportOptLightmapLog)
|
||||
# newline = newline.replace("dummy_lightmap_path", outDirLightmap)
|
||||
# newline = newline.replace("output_directory_anim", outDirAnim)
|
||||
# sDst.write(newline)
|
||||
# sSrc.close()
|
||||
# sDst.close()
|
||||
# while tagDiff > 0:
|
||||
# printLog(log, "MAXSCRIPT " + scriptDst)
|
||||
# subprocess.call([ Max, "-U", "MAXScript", "dummy_export.ms", "-q", "-mi", "-mip" ])
|
||||
# tagList = findFiles(log, outDirTag, "", ".tag")
|
||||
# newTagLen = len(tagList)
|
||||
# tagDiff = newTagLen - tagLen
|
||||
# tagLen = newTagLen
|
||||
# printLog(log, "Exported " + str(tagDiff) + " .max files!")
|
||||
# tagDiff += hackBdummyTree() # force rerun also when bdummy tree deleted
|
||||
# os.remove(scriptDst)
|
||||
|
||||
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,96 +1,96 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 2_build.py
|
||||
# \brief Build dummy
|
||||
# \date 2010-05-24 13:42GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Build dummy
|
||||
#
|
||||
# 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 dummy")
|
||||
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)
|
||||
|
||||
#if 1: # todo: CoarseMeshTextureNames length > 0 ...
|
||||
# printLog(log, ">>> Build coarse meshes <<<")
|
||||
# dummyWithCoarseMesh = ExportBuildDirectory + "/" + DummyWithCoarseMeshExportDirectory
|
||||
# mkPath(log, dummyWithCoarseMesh)
|
||||
# dummyWithCoarseMeshBuilded = ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory
|
||||
# mkPath(log, dummyWithCoarseMeshBuilded)
|
||||
# cf = open("confdummy_generated.cfg", "w")
|
||||
# cf.write("texture_mul_size = " + TextureMulSizeValue + ";\n")
|
||||
# cf.write("\n")
|
||||
# cf.write("search_path = \n")
|
||||
# cf.write("{\n")
|
||||
# cf.write("\t\"" + dummyWithCoarseMesh + "\", \n")
|
||||
# for dir in MapSourceDirectories:
|
||||
# cf.write("\t\"" + DatabaseDirectory + "/" + dir + "\", \n")
|
||||
# cf.write("};\n")
|
||||
# cf.write("\n")
|
||||
# cf.write("list_mesh = \n")
|
||||
# cf.write("{\n")
|
||||
# # For each dummy with coarse mesh
|
||||
# files = findFiles(log, dummyWithCoarseMesh, "", ".dummy")
|
||||
# for file in files:
|
||||
# sourceFile = dummyWithCoarseMesh + "/" + file
|
||||
# if os.path.isfile(sourceFile):
|
||||
# destFile = dummyWithCoarseMeshBuilded + "/" + file
|
||||
# cf.write("\t\"" + file + "\", \"" + destFile + "\", \n")
|
||||
# cf.write("};\n")
|
||||
# cf.write("\n")
|
||||
# cf.write("output_textures = \n")
|
||||
# cf.write("{\n")
|
||||
# # For each dummy with coarse mesh
|
||||
# for tn in CoarseMeshTextureNames:
|
||||
# cf.write("\t\"" + dummyWithCoarseMesh + "/" + tn + ".tga\", \n")
|
||||
# cf.write("};\n")
|
||||
# cf.close()
|
||||
# subprocess.call([ BuildCoarseMesh, "confdummy_generated.cfg" ])
|
||||
# os.remove("confdummy_generated.cfg")
|
||||
# for tn in CoarseMeshTextureNames:
|
||||
# subprocess.call([ TgaToDds, dummyWithCoarseMesh + "/" + tn + ".tga", "-o", dummyWithCoarseMeshBuilded + "/" + tn + ".dds", "-a", "5" ])
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 2_build.py
|
||||
# \brief Build dummy
|
||||
# \date 2010-05-24 13:42GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Build dummy
|
||||
#
|
||||
# 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 dummy")
|
||||
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)
|
||||
|
||||
#if 1: # todo: CoarseMeshTextureNames length > 0 ...
|
||||
# printLog(log, ">>> Build coarse meshes <<<")
|
||||
# dummyWithCoarseMesh = ExportBuildDirectory + "/" + DummyWithCoarseMeshExportDirectory
|
||||
# mkPath(log, dummyWithCoarseMesh)
|
||||
# dummyWithCoarseMeshBuilded = ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory
|
||||
# mkPath(log, dummyWithCoarseMeshBuilded)
|
||||
# cf = open("confdummy_generated.cfg", "w")
|
||||
# cf.write("texture_mul_size = " + TextureMulSizeValue + ";\n")
|
||||
# cf.write("\n")
|
||||
# cf.write("search_path = \n")
|
||||
# cf.write("{\n")
|
||||
# cf.write("\t\"" + dummyWithCoarseMesh + "\", \n")
|
||||
# for dir in MapSourceDirectories:
|
||||
# cf.write("\t\"" + DatabaseDirectory + "/" + dir + "\", \n")
|
||||
# cf.write("};\n")
|
||||
# cf.write("\n")
|
||||
# cf.write("list_mesh = \n")
|
||||
# cf.write("{\n")
|
||||
# # For each dummy with coarse mesh
|
||||
# files = findFiles(log, dummyWithCoarseMesh, "", ".dummy")
|
||||
# for file in files:
|
||||
# sourceFile = dummyWithCoarseMesh + "/" + file
|
||||
# if os.path.isfile(sourceFile):
|
||||
# destFile = dummyWithCoarseMeshBuilded + "/" + file
|
||||
# cf.write("\t\"" + file + "\", \"" + destFile + "\", \n")
|
||||
# cf.write("};\n")
|
||||
# cf.write("\n")
|
||||
# cf.write("output_textures = \n")
|
||||
# cf.write("{\n")
|
||||
# # For each dummy with coarse mesh
|
||||
# for tn in CoarseMeshTextureNames:
|
||||
# cf.write("\t\"" + dummyWithCoarseMesh + "/" + tn + ".tga\", \n")
|
||||
# cf.write("};\n")
|
||||
# cf.close()
|
||||
# subprocess.call([ BuildCoarseMesh, "confdummy_generated.cfg" ])
|
||||
# os.remove("confdummy_generated.cfg")
|
||||
# for tn in CoarseMeshTextureNames:
|
||||
# subprocess.call([ TgaToDds, dummyWithCoarseMesh + "/" + tn + ".tga", "-o", dummyWithCoarseMeshBuilded + "/" + tn + ".dds", "-a", "5" ])
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,63 +1,63 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 3_install.py
|
||||
# \brief Install dummy
|
||||
# \date 2010-05-24 13:42GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install dummy
|
||||
#
|
||||
# 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, "--- Install dummy")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
#installPath = InstallDirectory + "/" + DummyInstallDirectory
|
||||
#mkPath(log, installPath)
|
||||
|
||||
printLog(log, ">>> Install dummy <<<")
|
||||
#mkPath(log, ExportBuildDirectory + "/" + DummyExportDirectory)
|
||||
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyExportDirectory, installPath, ".dummy")
|
||||
#mkPath(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory)
|
||||
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory, installPath, ".dummy")
|
||||
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory, installPath, ".dds")
|
||||
|
||||
#mkPath(log, ExportBuildDirectory + "/" + DummyAnimExportDirectory)
|
||||
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyAnimExportDirectory, installPath, ".anim")
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 3_install.py
|
||||
# \brief Install dummy
|
||||
# \date 2010-05-24 13:42GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install dummy
|
||||
#
|
||||
# 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 dummy")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
#installPath = InstallDirectory + "/" + DummyInstallDirectory
|
||||
#mkPath(log, installPath)
|
||||
|
||||
printLog(log, ">>> Install dummy <<<")
|
||||
#mkPath(log, ExportBuildDirectory + "/" + DummyExportDirectory)
|
||||
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyExportDirectory, installPath, ".dummy")
|
||||
#mkPath(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory)
|
||||
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory, installPath, ".dummy")
|
||||
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory, installPath, ".dds")
|
||||
|
||||
#mkPath(log, ExportBuildDirectory + "/" + DummyAnimExportDirectory)
|
||||
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyAnimExportDirectory, installPath, ".anim")
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,98 +1,98 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 0_setup.py
|
||||
# \brief setup ai_wmap
|
||||
# \date 2010-05-24 13:42GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Setup 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, "--- Setup ai_wmap")
|
||||
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 + "/" + RbankOutputBuildDirectory)
|
||||
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory)
|
||||
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildTagDirectory)
|
||||
|
||||
# Setup lookup directories
|
||||
printLog(log, ">>> Setup lookup directories <<<")
|
||||
for dir in IgLookupDirectories:
|
||||
mkPath(log, ExportBuildDirectory + "/" + dir)
|
||||
for dir in PacsPrimLookupDirectories:
|
||||
mkPath(log, ExportBuildDirectory + "/" + dir)
|
||||
|
||||
# Setup client directories
|
||||
printLog(log, ">>> Setup install directories <<<")
|
||||
mkPath(log, InstallDirectory + "/" + AiWmapInstallDirectory)
|
||||
|
||||
# Setup client directories
|
||||
printLog(log, ">>> Setup configuration <<<")
|
||||
mkPath(log, InstallDirectory + "/" + AiWmapInstallDirectory)
|
||||
mkPath(log, ActiveProjectDirectory + "/generated")
|
||||
cfg = open(ActiveProjectDirectory + "/generated/ai_build_wmap.cfg", "w")
|
||||
cfg.write("\n")
|
||||
cfg.write("// AI BUILD WMAP CONFIGURATION\n")
|
||||
cfg.write("\n")
|
||||
cfg.write("Paths = {\n")
|
||||
for dir in IgLookupDirectories:
|
||||
cfg.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
|
||||
cfg.write("\t\"" + ExportBuildDirectory + "/" + RbankOutputBuildDirectory + "\", \n")
|
||||
cfg.write("\t\"" + LeveldesignDirectory + "\", \n")
|
||||
cfg.write("};\n")
|
||||
cfg.write("\n")
|
||||
cfg.write("NoRecursePaths = { };\n")
|
||||
cfg.write("\n")
|
||||
cfg.write("PacsPrimPaths = {\n")
|
||||
for dir in PacsPrimLookupDirectories:
|
||||
cfg.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
|
||||
cfg.write("};\n")
|
||||
cfg.write("\n")
|
||||
cfg.write("OutputPath = \"" + ExportBuildDirectory + "/" + AiWmapBuildDirectory + "\";\n")
|
||||
cfg.write("\n")
|
||||
cfg.write("Commands = {\n")
|
||||
cfg.write("\t\"Verbose " + str(AiWmapVerbose) + "\", \n")
|
||||
for startPoint in AiWmapStartPoints:
|
||||
cfg.write("\t\"setStartPoint " + startPoint + "\", \n")
|
||||
cfg.write("};\n")
|
||||
cfg.write("\n")
|
||||
cfg.close()
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 0_setup.py
|
||||
# \brief setup ai_wmap
|
||||
# \date 2010-05-24 13:42GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Setup 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, "--- Setup ai_wmap")
|
||||
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 + "/" + RbankOutputBuildDirectory)
|
||||
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory)
|
||||
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildTagDirectory)
|
||||
|
||||
# Setup lookup directories
|
||||
printLog(log, ">>> Setup lookup directories <<<")
|
||||
for dir in IgLookupDirectories:
|
||||
mkPath(log, ExportBuildDirectory + "/" + dir)
|
||||
for dir in PacsPrimLookupDirectories:
|
||||
mkPath(log, ExportBuildDirectory + "/" + dir)
|
||||
|
||||
# Setup client directories
|
||||
printLog(log, ">>> Setup install directories <<<")
|
||||
mkPath(log, InstallDirectory + "/" + AiWmapInstallDirectory)
|
||||
|
||||
# Setup client directories
|
||||
printLog(log, ">>> Setup configuration <<<")
|
||||
mkPath(log, InstallDirectory + "/" + AiWmapInstallDirectory)
|
||||
mkPath(log, ActiveProjectDirectory + "/generated")
|
||||
cfg = open(ActiveProjectDirectory + "/generated/ai_build_wmap.cfg", "w")
|
||||
cfg.write("\n")
|
||||
cfg.write("// AI BUILD WMAP CONFIGURATION\n")
|
||||
cfg.write("\n")
|
||||
cfg.write("Paths = {\n")
|
||||
for dir in IgLookupDirectories:
|
||||
cfg.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
|
||||
cfg.write("\t\"" + ExportBuildDirectory + "/" + RbankOutputBuildDirectory + "\", \n")
|
||||
cfg.write("\t\"" + LeveldesignDirectory + "\", \n")
|
||||
cfg.write("};\n")
|
||||
cfg.write("\n")
|
||||
cfg.write("NoRecursePaths = { };\n")
|
||||
cfg.write("\n")
|
||||
cfg.write("PacsPrimPaths = {\n")
|
||||
for dir in PacsPrimLookupDirectories:
|
||||
cfg.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
|
||||
cfg.write("};\n")
|
||||
cfg.write("\n")
|
||||
cfg.write("OutputPath = \"" + ExportBuildDirectory + "/" + AiWmapBuildDirectory + "\";\n")
|
||||
cfg.write("\n")
|
||||
cfg.write("Commands = {\n")
|
||||
cfg.write("\t\"Verbose " + str(AiWmapVerbose) + "\", \n")
|
||||
for startPoint in AiWmapStartPoints:
|
||||
cfg.write("\t\"setStartPoint " + startPoint + "\", \n")
|
||||
cfg.write("};\n")
|
||||
cfg.write("\n")
|
||||
cfg.close()
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,49 +1,49 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Export ai_wmap
|
||||
# \date 2010-05-24 13:42GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Export 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, "--- Export ai_wmap")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Export ai_wmap
|
||||
# \date 2010-05-24 13:42GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Export 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, "--- Export ai_wmap")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,57 +1,57 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 3_install.py
|
||||
# \brief Install ai_wmap
|
||||
# \date 2010-05-24 13:42GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install 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, "--- Install ai_wmap")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
installPath = InstallDirectory + "/" + AiWmapInstallDirectory
|
||||
mkPath(log, installPath)
|
||||
|
||||
printLog(log, ">>> Install ai_wmap <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory)
|
||||
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory, installPath)
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 3_install.py
|
||||
# \brief Install ai_wmap
|
||||
# \date 2010-05-24 13:42GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install 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_local import *
|
||||
from process import *
|
||||
from tools import *
|
||||
from directories import *
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Install ai_wmap")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
installPath = InstallDirectory + "/" + AiWmapInstallDirectory
|
||||
mkPath(log, installPath)
|
||||
|
||||
printLog(log, ">>> Install ai_wmap <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory)
|
||||
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory, installPath)
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,66 +1,66 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 0_setup.py
|
||||
# \brief Setup anim
|
||||
# \date 2009-03-10 14:56GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Setup anim
|
||||
#
|
||||
# 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 anim")
|
||||
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 <<<")
|
||||
for dir in AnimSourceDirectories:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
|
||||
# Setup export directories
|
||||
printLog(log, ">>> Setup export directories <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + AnimExportDirectory)
|
||||
|
||||
# Setup build directories
|
||||
printLog(log, ">>> Setup build directories <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + AnimBuildDirectory)
|
||||
|
||||
# Setup client directories
|
||||
printLog(log, ">>> Setup client directories <<<")
|
||||
mkPath(log, InstallDirectory + "/" + AnimInstallDirectory)
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 0_setup.py
|
||||
# \brief Setup anim
|
||||
# \date 2009-03-10 14:56GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Setup anim
|
||||
#
|
||||
# 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 anim")
|
||||
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 <<<")
|
||||
for dir in AnimSourceDirectories:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
|
||||
# Setup export directories
|
||||
printLog(log, ">>> Setup export directories <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + AnimExportDirectory)
|
||||
|
||||
# Setup build directories
|
||||
printLog(log, ">>> Setup build directories <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + AnimBuildDirectory)
|
||||
|
||||
# Setup client directories
|
||||
printLog(log, ">>> Setup client directories <<<")
|
||||
mkPath(log, InstallDirectory + "/" + AnimInstallDirectory)
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,139 +1,139 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# #################################################################
|
||||
# ## WARNING : this is a generated file, don't change it !
|
||||
# #################################################################
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Export anim
|
||||
# \date 2015-01-06-16-31-GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Export anim
|
||||
#
|
||||
# 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")
|
||||
if os.path.isfile("temp_log.log"):
|
||||
os.remove("temp_log.log")
|
||||
log = open("temp_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 anim")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
# Find tools
|
||||
# ...
|
||||
|
||||
# Export anim 3dsmax
|
||||
if MaxAvailable:
|
||||
# Find tools
|
||||
Max = findMax(log, MaxDirectory, MaxExecutable)
|
||||
printLog(log, "")
|
||||
|
||||
printLog(log, ">>> Export anim 3dsmax <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + AnimExportDirectory)
|
||||
mkPath(log, ExportBuildDirectory + "/" + AnimTagExportDirectory)
|
||||
for dir in AnimSourceDirectories:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
if (needUpdateDirByTagLog(log, DatabaseDirectory + "/" + dir, ".max", ExportBuildDirectory + "/" + AnimTagExportDirectory, ".max.tag")):
|
||||
scriptSrc = "maxscript/anim_export.ms"
|
||||
scriptDst = MaxUserDirectory + "/scripts/anim_export.ms"
|
||||
outputLogfile = ScriptDirectory + "/processes/anim/log.log"
|
||||
outputDirectory = ExportBuildDirectory + "/" + AnimExportDirectory
|
||||
tagDirectory = ExportBuildDirectory + "/" + AnimTagExportDirectory
|
||||
maxSourceDir = DatabaseDirectory + "/" + dir
|
||||
maxRunningTagFile = tagDirectory + "/max_running.tag"
|
||||
tagList = findFiles(log, tagDirectory, "", ".max.tag")
|
||||
tagLen = len(tagList)
|
||||
if os.path.isfile(scriptDst):
|
||||
os.remove(scriptDst)
|
||||
tagDiff = 1
|
||||
sSrc = open(scriptSrc, "r")
|
||||
sDst = open(scriptDst, "w")
|
||||
for line in sSrc:
|
||||
newline = line.replace("%OutputLogfile%", outputLogfile)
|
||||
newline = newline.replace("%MaxSourceDirectory%", maxSourceDir)
|
||||
newline = newline.replace("%OutputDirectory%", outputDirectory)
|
||||
newline = newline.replace("%TagDirectory%", tagDirectory)
|
||||
sDst.write(newline)
|
||||
sSrc.close()
|
||||
sDst.close()
|
||||
zeroRetryLimit = 3
|
||||
while tagDiff > 0:
|
||||
mrt = open(maxRunningTagFile, "w")
|
||||
mrt.write("moe-moe-kyun")
|
||||
mrt.close()
|
||||
printLog(log, "MAXSCRIPT " + scriptDst)
|
||||
subprocess.call([ Max, "-U", "MAXScript", "anim_export.ms", "-q", "-mi", "-mip" ])
|
||||
if os.path.exists(outputLogfile):
|
||||
try:
|
||||
lSrc = open(outputLogfile, "r")
|
||||
for line in lSrc:
|
||||
lineStrip = line.strip()
|
||||
if (len(lineStrip) > 0):
|
||||
printLog(log, lineStrip)
|
||||
lSrc.close()
|
||||
os.remove(outputLogfile)
|
||||
except Exception:
|
||||
printLog(log, "ERROR Failed to read 3dsmax log")
|
||||
else:
|
||||
printLog(log, "WARNING No 3dsmax log")
|
||||
tagList = findFiles(log, tagDirectory, "", ".max.tag")
|
||||
newTagLen = len(tagList)
|
||||
tagDiff = newTagLen - tagLen
|
||||
tagLen = newTagLen
|
||||
addTagDiff = 0
|
||||
if os.path.exists(maxRunningTagFile):
|
||||
printLog(log, "FAIL 3ds Max crashed and/or file export failed!")
|
||||
if tagDiff == 0:
|
||||
if zeroRetryLimit > 0:
|
||||
zeroRetryLimit = zeroRetryLimit - 1
|
||||
addTagDiff = 1
|
||||
else:
|
||||
printLog(log, "FAIL Retry limit reached!")
|
||||
else:
|
||||
addTagDiff = 1
|
||||
os.remove(maxRunningTagFile)
|
||||
printLog(log, "Exported " + str(tagDiff) + " .max files!")
|
||||
tagDiff += addTagDiff
|
||||
os.remove(scriptDst)
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
shutil.move("temp_log.log", "log.log")
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# #################################################################
|
||||
# ## WARNING : this is a generated file, don't change it !
|
||||
# #################################################################
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Export anim
|
||||
# \date 2015-01-06-16-31-GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Export anim
|
||||
#
|
||||
# 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")
|
||||
if os.path.isfile("temp_log.log"):
|
||||
os.remove("temp_log.log")
|
||||
log = open("temp_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 anim")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
# Find tools
|
||||
# ...
|
||||
|
||||
# Export anim 3dsmax
|
||||
if MaxAvailable:
|
||||
# Find tools
|
||||
Max = findMax(log, MaxDirectory, MaxExecutable)
|
||||
printLog(log, "")
|
||||
|
||||
printLog(log, ">>> Export anim 3dsmax <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + AnimExportDirectory)
|
||||
mkPath(log, ExportBuildDirectory + "/" + AnimTagExportDirectory)
|
||||
for dir in AnimSourceDirectories:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
if (needUpdateDirByTagLog(log, DatabaseDirectory + "/" + dir, ".max", ExportBuildDirectory + "/" + AnimTagExportDirectory, ".max.tag")):
|
||||
scriptSrc = "maxscript/anim_export.ms"
|
||||
scriptDst = MaxUserDirectory + "/scripts/anim_export.ms"
|
||||
outputLogfile = ScriptDirectory + "/processes/anim/log.log"
|
||||
outputDirectory = ExportBuildDirectory + "/" + AnimExportDirectory
|
||||
tagDirectory = ExportBuildDirectory + "/" + AnimTagExportDirectory
|
||||
maxSourceDir = DatabaseDirectory + "/" + dir
|
||||
maxRunningTagFile = tagDirectory + "/max_running.tag"
|
||||
tagList = findFiles(log, tagDirectory, "", ".max.tag")
|
||||
tagLen = len(tagList)
|
||||
if os.path.isfile(scriptDst):
|
||||
os.remove(scriptDst)
|
||||
tagDiff = 1
|
||||
sSrc = open(scriptSrc, "r")
|
||||
sDst = open(scriptDst, "w")
|
||||
for line in sSrc:
|
||||
newline = line.replace("%OutputLogfile%", outputLogfile)
|
||||
newline = newline.replace("%MaxSourceDirectory%", maxSourceDir)
|
||||
newline = newline.replace("%OutputDirectory%", outputDirectory)
|
||||
newline = newline.replace("%TagDirectory%", tagDirectory)
|
||||
sDst.write(newline)
|
||||
sSrc.close()
|
||||
sDst.close()
|
||||
zeroRetryLimit = 3
|
||||
while tagDiff > 0:
|
||||
mrt = open(maxRunningTagFile, "w")
|
||||
mrt.write("moe-moe-kyun")
|
||||
mrt.close()
|
||||
printLog(log, "MAXSCRIPT " + scriptDst)
|
||||
subprocess.call([ Max, "-U", "MAXScript", "anim_export.ms", "-q", "-mi", "-mip" ])
|
||||
if os.path.exists(outputLogfile):
|
||||
try:
|
||||
lSrc = open(outputLogfile, "r")
|
||||
for line in lSrc:
|
||||
lineStrip = line.strip()
|
||||
if (len(lineStrip) > 0):
|
||||
printLog(log, lineStrip)
|
||||
lSrc.close()
|
||||
os.remove(outputLogfile)
|
||||
except Exception:
|
||||
printLog(log, "ERROR Failed to read 3dsmax log")
|
||||
else:
|
||||
printLog(log, "WARNING No 3dsmax log")
|
||||
tagList = findFiles(log, tagDirectory, "", ".max.tag")
|
||||
newTagLen = len(tagList)
|
||||
tagDiff = newTagLen - tagLen
|
||||
tagLen = newTagLen
|
||||
addTagDiff = 0
|
||||
if os.path.exists(maxRunningTagFile):
|
||||
printLog(log, "FAIL 3ds Max crashed and/or file export failed!")
|
||||
if tagDiff == 0:
|
||||
if zeroRetryLimit > 0:
|
||||
zeroRetryLimit = zeroRetryLimit - 1
|
||||
addTagDiff = 1
|
||||
else:
|
||||
printLog(log, "FAIL Retry limit reached!")
|
||||
else:
|
||||
addTagDiff = 1
|
||||
os.remove(maxRunningTagFile)
|
||||
printLog(log, "Exported " + str(tagDiff) + " .max files!")
|
||||
tagDiff += addTagDiff
|
||||
os.remove(scriptDst)
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
shutil.move("temp_log.log", "log.log")
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,70 +1,70 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 2_build.py
|
||||
# \brief Build anim
|
||||
# \date 2009-03-10 13:13GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Build anim
|
||||
#
|
||||
# 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 anim")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
# Find tools
|
||||
AnimBuilder = findTool(log, ToolDirectories, AnimBuilderTool, ToolSuffix)
|
||||
printLog(log, "")
|
||||
|
||||
# For each anim directory
|
||||
printLog(log, ">>> Build anim <<<")
|
||||
if AnimBuilder == "":
|
||||
toolLogFail(log, AnimBuilderTool, ToolSuffix)
|
||||
else:
|
||||
srcDir = ExportBuildDirectory + "/" + AnimExportDirectory
|
||||
mkPath(log, srcDir)
|
||||
destDir = ExportBuildDirectory + "/" + AnimBuildDirectory
|
||||
mkPath(log, destDir)
|
||||
if DoOptimizeAnimations:
|
||||
printLog(log, ">>> Optimizing animations <<<")
|
||||
subprocess.call([ AnimBuilder, srcDir, destDir, ActiveProjectDirectory + "/anim_builder.cfg" ])
|
||||
else:
|
||||
printLog(log, ">>> Not optimizing animations <<<")
|
||||
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 2_build.py
|
||||
# \brief Build anim
|
||||
# \date 2009-03-10 13:13GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Build anim
|
||||
#
|
||||
# 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 anim")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
# Find tools
|
||||
AnimBuilder = findTool(log, ToolDirectories, AnimBuilderTool, ToolSuffix)
|
||||
printLog(log, "")
|
||||
|
||||
# For each anim directory
|
||||
printLog(log, ">>> Build anim <<<")
|
||||
if AnimBuilder == "":
|
||||
toolLogFail(log, AnimBuilderTool, ToolSuffix)
|
||||
else:
|
||||
srcDir = ExportBuildDirectory + "/" + AnimExportDirectory
|
||||
mkPath(log, srcDir)
|
||||
destDir = ExportBuildDirectory + "/" + AnimBuildDirectory
|
||||
mkPath(log, destDir)
|
||||
if DoOptimizeAnimations:
|
||||
printLog(log, ">>> Optimizing animations <<<")
|
||||
subprocess.call([ AnimBuilder, srcDir, destDir, ActiveProjectDirectory + "/anim_builder.cfg" ])
|
||||
else:
|
||||
printLog(log, ">>> Not optimizing animations <<<")
|
||||
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,57 +1,57 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 3_install.py
|
||||
# \brief Install anim
|
||||
# \date 2009-03-10 13:13GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install anim
|
||||
#
|
||||
# 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, "--- Install anim")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
printLog(log, ">>> Install anim <<<")
|
||||
srcDir = ExportBuildDirectory + "/" + AnimBuildDirectory
|
||||
mkPath(log, srcDir)
|
||||
destDir = InstallDirectory + "/" + AnimInstallDirectory
|
||||
mkPath(log, destDir)
|
||||
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 3_install.py
|
||||
# \brief Install anim
|
||||
# \date 2009-03-10 13:13GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install anim
|
||||
#
|
||||
# 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 anim")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
printLog(log, ">>> Install anim <<<")
|
||||
srcDir = ExportBuildDirectory + "/" + AnimBuildDirectory
|
||||
mkPath(log, srcDir)
|
||||
destDir = InstallDirectory + "/" + AnimInstallDirectory
|
||||
mkPath(log, destDir)
|
||||
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,49 +1,49 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Export cartographer
|
||||
# \date 2014-09-13 13:32GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Export 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, "--- Export cartographer")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Export cartographer
|
||||
# \date 2014-09-13 13:32GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Export 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, "--- Export cartographer")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,62 +1,87 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 2_build.py
|
||||
# \brief Build cartographer
|
||||
# \date 2014-09-13 13:32GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Build 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, "--- Build cartographer")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
# Find tools
|
||||
R2IslandsTextures = findTool(log, ToolDirectories, R2IslandsTexturesTool, ToolSuffix)
|
||||
|
||||
if R2IslandsTextures == "":
|
||||
toolLogFail(log, R2IslandsTexturesTool, ToolSuffix)
|
||||
else:
|
||||
printLog(log, ">>> Copy island_screenshots.cfg <<<")
|
||||
cfgPath = ActiveProjectDirectory + "/generated/island_screenshots.cfg"
|
||||
shutil.copy(cfgPath, "island_screenshots.cfg")
|
||||
printLog(log, ">>> Build cartographer <<<")
|
||||
subprocess.call([ R2IslandsTextures ])
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 2_build.py
|
||||
# \brief Build cartographer
|
||||
# \date 2014-09-13 13:32GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Build 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, "--- Build cartographer")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
# Find tools
|
||||
R2IslandsTextures = findTool(log, ToolDirectories, R2IslandsTexturesTool, ToolSuffix)
|
||||
TgaToDds = findTool(log, ToolDirectories, TgaToDdsTool, ToolSuffix)
|
||||
|
||||
if R2IslandsTextures == "":
|
||||
toolLogFail(log, R2IslandsTexturesTool, ToolSuffix)
|
||||
else:
|
||||
printLog(log, ">>> Copy island_screenshots.cfg <<<")
|
||||
cfgPath = ActiveProjectDirectory + "/generated/island_screenshots.cfg"
|
||||
shutil.copy(cfgPath, "island_screenshots.cfg")
|
||||
printLog(log, ">>> Build cartographer <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + CartographerBuildDirectory)
|
||||
subprocess.call([ R2IslandsTextures ])
|
||||
printLog(log, "")
|
||||
|
||||
printLog(log, ">>> Compress cartographer maps to DDS <<<")
|
||||
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
|
||||
#
|
||||
# \file 3_install.py
|
||||
# \brief Install cartographer
|
||||
# \date 2014-09-13 13:32GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install 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, "--- Install cartographer")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
installPath = InstallDirectory + "/" + CartographerInstallDirectory
|
||||
mkPath(log, installPath)
|
||||
|
||||
printLog(log, ">>> Install cartographer <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + CartographerBuildDirectory)
|
||||
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + CartographerBuildDirectory, installPath)
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 3_install.py
|
||||
# \brief Install cartographer
|
||||
# \date 2014-09-13 13:32GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install 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_local import *
|
||||
from process import *
|
||||
from tools import *
|
||||
from directories import *
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Install cartographer")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
installPath = InstallDirectory + "/" + CartographerInstallDirectory
|
||||
islandsInstallPath = InstallDirectory + "/" + IslandsInstallDirectory
|
||||
|
||||
|
||||
printLog(log, ">>> Install cartographer <<<")
|
||||
|
||||
mkPath(log, ExportBuildDirectory + "/" + CartographerMapBuildDirectory)
|
||||
mkPath(log, installPath)
|
||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + CartographerMapBuildDirectory, installPath, ".dds")
|
||||
|
||||
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
|
||||
#
|
||||
# \file 0_setup.py
|
||||
# \brief Setup cegui
|
||||
# \date 2009-03-14-17-46-GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Setup cegui
|
||||
#
|
||||
# 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 cegui")
|
||||
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 <<<")
|
||||
for dir in CeguiImagesetSourceDirectories:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
|
||||
# Setup export directories
|
||||
printLog(log, ">>> Setup export directories <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + CeguiImagesetExportDirectory)
|
||||
|
||||
# Setup build directories
|
||||
printLog(log, ">>> Setup build directories <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory)
|
||||
|
||||
# Setup client directories
|
||||
printLog(log, ">>> Setup client directories <<<")
|
||||
mkPath(log, InstallDirectory + "/" + CeguiImagesetInstallDirectory)
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 0_setup.py
|
||||
# \brief Setup cegui
|
||||
# \date 2009-03-14-17-46-GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Setup cegui
|
||||
#
|
||||
# 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 cegui")
|
||||
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 <<<")
|
||||
for dir in CeguiImagesetSourceDirectories:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
|
||||
# Setup export directories
|
||||
printLog(log, ">>> Setup export directories <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + CeguiImagesetExportDirectory)
|
||||
|
||||
# Setup build directories
|
||||
printLog(log, ">>> Setup build directories <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory)
|
||||
|
||||
# Setup client directories
|
||||
printLog(log, ">>> Setup client directories <<<")
|
||||
mkPath(log, InstallDirectory + "/" + CeguiImagesetInstallDirectory)
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,67 +1,67 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Export cegui
|
||||
# \date 2009-03-14-17-46-GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Export cegui
|
||||
#
|
||||
# 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 cegui")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
# For each cegui imageset directory
|
||||
printLog(log, ">>> Export cegui imagesets <<<")
|
||||
destDir = ExportBuildDirectory + "/" + CeguiImagesetExportDirectory
|
||||
mkPath(log, destDir)
|
||||
for dir in CeguiImagesetSourceDirectories:
|
||||
srcDir = DatabaseDirectory + "/" + dir
|
||||
mkPath(log, srcDir)
|
||||
imagesets = findFiles(log, srcDir, "", ".imageset")
|
||||
if (len(imagesets) != 1):
|
||||
printLog(log, "FAIL Cannot find *.imageset, folder must contain at least one and only one imageset xml file")
|
||||
else:
|
||||
niouname = dir.replace("/", "_")
|
||||
newpath = destDir + "/" + niouname
|
||||
mkPath(log, newpath)
|
||||
copyFileIfNeeded(log, srcDir + "/" + imagesets[0], newpath + ".imageset")
|
||||
copyFilesExtNoTreeIfNeeded(log, srcDir, newpath, ".tga")
|
||||
copyFilesExtNoTreeIfNeeded(log, srcDir, newpath, ".png")
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Export cegui
|
||||
# \date 2009-03-14-17-46-GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Export cegui
|
||||
#
|
||||
# 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 cegui")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
# For each cegui imageset directory
|
||||
printLog(log, ">>> Export cegui imagesets <<<")
|
||||
destDir = ExportBuildDirectory + "/" + CeguiImagesetExportDirectory
|
||||
mkPath(log, destDir)
|
||||
for dir in CeguiImagesetSourceDirectories:
|
||||
srcDir = DatabaseDirectory + "/" + dir
|
||||
mkPath(log, srcDir)
|
||||
imagesets = findFiles(log, srcDir, "", ".imageset")
|
||||
if (len(imagesets) != 1):
|
||||
printLog(log, "FAIL Cannot find *.imageset, folder must contain at least one and only one imageset xml file")
|
||||
else:
|
||||
niouname = dir.replace("/", "_")
|
||||
newpath = destDir + "/" + niouname
|
||||
mkPath(log, newpath)
|
||||
copyFileIfNeeded(log, srcDir + "/" + imagesets[0], newpath + ".imageset")
|
||||
copyFilesExtNoTreeIfNeeded(log, srcDir, newpath, ".tga")
|
||||
copyFilesExtNoTreeIfNeeded(log, srcDir, newpath, ".png")
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,67 +1,67 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 2_build.py
|
||||
# \brief Build cegui
|
||||
# \date 2009-03-14-17-46-GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Build cegui
|
||||
#
|
||||
# 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 cegui")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
# Find tools
|
||||
BuildImageset = findTool(log, ToolDirectories, BuildImagesetTool, ToolSuffix)
|
||||
printLog(log, "")
|
||||
|
||||
# For each cegui imageset directory
|
||||
printLog(log, ">>> Build cegui imagesets <<<")
|
||||
if BuildImageset == "":
|
||||
toolLogFail(log, BuildImagesetTool, ToolSuffix)
|
||||
else:
|
||||
srcDir = ExportBuildDirectory + "/" + CeguiImagesetExportDirectory
|
||||
mkPath(log, srcDir)
|
||||
destDir = ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory
|
||||
mkPath(log, destDir)
|
||||
for dir in os.listdir(srcDir):
|
||||
if (os.path.isdir(srcDir + "/" + dir)) and dir != ".svn" and dir != "*.*":
|
||||
mkPath(log, srcDir + "/" + dir)
|
||||
subprocess.call([ BuildImageset, destDir + "/" + dir + ".tga", srcDir + "/" + dir ])
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 2_build.py
|
||||
# \brief Build cegui
|
||||
# \date 2009-03-14-17-46-GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Build cegui
|
||||
#
|
||||
# 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 cegui")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
# Find tools
|
||||
BuildImageset = findTool(log, ToolDirectories, BuildImagesetTool, ToolSuffix)
|
||||
printLog(log, "")
|
||||
|
||||
# For each cegui imageset directory
|
||||
printLog(log, ">>> Build cegui imagesets <<<")
|
||||
if BuildImageset == "":
|
||||
toolLogFail(log, BuildImagesetTool, ToolSuffix)
|
||||
else:
|
||||
srcDir = ExportBuildDirectory + "/" + CeguiImagesetExportDirectory
|
||||
mkPath(log, srcDir)
|
||||
destDir = ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory
|
||||
mkPath(log, destDir)
|
||||
for dir in os.listdir(srcDir):
|
||||
if (os.path.isdir(srcDir + "/" + dir)) and dir != ".svn" and dir != "*.*":
|
||||
mkPath(log, srcDir + "/" + dir)
|
||||
subprocess.call([ BuildImageset, destDir + "/" + dir + ".tga", srcDir + "/" + dir ])
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,56 +1,56 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 3_install.py
|
||||
# \brief Install cegui
|
||||
# \date 2009-03-14-17-46-GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Install cegui
|
||||
#
|
||||
# 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, "--- Install cegui")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
printLog(log, ">>> Install cegui imagesets <<<")
|
||||
srcDir = ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory
|
||||
mkPath(log, srcDir)
|
||||
destDir = InstallDirectory + "/" + CeguiImagesetInstallDirectory
|
||||
mkPath(log, destDir)
|
||||
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 3_install.py
|
||||
# \brief Install cegui
|
||||
# \date 2009-03-14-17-46-GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Install cegui
|
||||
#
|
||||
# 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 cegui")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
printLog(log, ">>> Install cegui imagesets <<<")
|
||||
srcDir = ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory
|
||||
mkPath(log, srcDir)
|
||||
destDir = InstallDirectory + "/" + CeguiImagesetInstallDirectory
|
||||
mkPath(log, destDir)
|
||||
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,87 +1,87 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 0_setup.py
|
||||
# \brief Setup clodbank
|
||||
# \date 2009-03-10 14:56GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Setup clodbank
|
||||
#
|
||||
# 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 clodbank")
|
||||
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 <<<")
|
||||
for dir in ClodSourceDirectories:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
|
||||
# Setup export directories
|
||||
printLog(log, ">>> Setup export directories <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + ClodTagExportDirectory)
|
||||
mkPath(log, ExportBuildDirectory + "/" + ClodExportDirectory)
|
||||
mkPath(log, ExportBuildDirectory + "/" + SkelExportDirectory)
|
||||
|
||||
# Setup build directories
|
||||
printLog(log, ">>> Setup build directories <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + ClodBankBuildDirectory)
|
||||
mkPath(log, ExportBuildDirectory + "/" + AnimBuildDirectory)
|
||||
|
||||
# Setup client directories
|
||||
printLog(log, ">>> Setup client directories <<<")
|
||||
mkPath(log, InstallDirectory + "/" + ShapeInstallDirectory)
|
||||
|
||||
# Setup configuration files
|
||||
printLog(log, ">>> Setup configuration files <<<")
|
||||
mkPath(log, ActiveProjectDirectory + "/generated")
|
||||
cfgOut = open(ActiveProjectDirectory + "/generated/clod_paths.cfg", "w")
|
||||
cfgOut.write("\n")
|
||||
cfgOut.write("// The search pathes, look in the current process\n")
|
||||
cfgOut.write("search_pathes = \n")
|
||||
cfgOut.write("{\n")
|
||||
cfgOut.write("\t\"" + ExportBuildDirectory + "/" + ClodExportDirectory + "\", \n")
|
||||
cfgOut.write("\t\"" + ExportBuildDirectory + "/" + SkelExportDirectory + "\", \n")
|
||||
cfgOut.write("\t\"" + ExportBuildDirectory + "/" + AnimBuildDirectory + "\", \n")
|
||||
cfgOut.write("\t\"" + ExportBuildDirectory + "/" + ShapeOptimizedBuildDirectory + "\", \n")
|
||||
cfgOut.write("\t\"" + ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory + "\", \n")
|
||||
cfgOut.write("};\n")
|
||||
cfgOut.write("\n")
|
||||
cfgOut.close()
|
||||
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 0_setup.py
|
||||
# \brief Setup clodbank
|
||||
# \date 2009-03-10 14:56GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Setup clodbank
|
||||
#
|
||||
# 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 clodbank")
|
||||
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 <<<")
|
||||
for dir in ClodSourceDirectories:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
|
||||
# Setup export directories
|
||||
printLog(log, ">>> Setup export directories <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + ClodTagExportDirectory)
|
||||
mkPath(log, ExportBuildDirectory + "/" + ClodExportDirectory)
|
||||
mkPath(log, ExportBuildDirectory + "/" + SkelExportDirectory)
|
||||
|
||||
# Setup build directories
|
||||
printLog(log, ">>> Setup build directories <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + ClodBankBuildDirectory)
|
||||
mkPath(log, ExportBuildDirectory + "/" + AnimBuildDirectory)
|
||||
|
||||
# Setup client directories
|
||||
printLog(log, ">>> Setup client directories <<<")
|
||||
mkPath(log, InstallDirectory + "/" + ShapeInstallDirectory)
|
||||
|
||||
# Setup configuration files
|
||||
printLog(log, ">>> Setup configuration files <<<")
|
||||
mkPath(log, ActiveProjectDirectory + "/generated")
|
||||
cfgOut = open(ActiveProjectDirectory + "/generated/clod_paths.cfg", "w")
|
||||
cfgOut.write("\n")
|
||||
cfgOut.write("// The search pathes, look in the current process\n")
|
||||
cfgOut.write("search_pathes = \n")
|
||||
cfgOut.write("{\n")
|
||||
cfgOut.write("\t\"" + ExportBuildDirectory + "/" + ClodExportDirectory + "\", \n")
|
||||
cfgOut.write("\t\"" + ExportBuildDirectory + "/" + SkelExportDirectory + "\", \n")
|
||||
cfgOut.write("\t\"" + ExportBuildDirectory + "/" + AnimBuildDirectory + "\", \n")
|
||||
cfgOut.write("\t\"" + ExportBuildDirectory + "/" + ShapeOptimizedBuildDirectory + "\", \n")
|
||||
cfgOut.write("\t\"" + ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory + "\", \n")
|
||||
cfgOut.write("};\n")
|
||||
cfgOut.write("\n")
|
||||
cfgOut.close()
|
||||
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,139 +1,139 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# #################################################################
|
||||
# ## WARNING : this is a generated file, don't change it !
|
||||
# #################################################################
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Export clodbank
|
||||
# \date 2015-01-06-16-31-GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Export clodbank
|
||||
#
|
||||
# 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")
|
||||
if os.path.isfile("temp_log.log"):
|
||||
os.remove("temp_log.log")
|
||||
log = open("temp_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 clodbank")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
# Find tools
|
||||
# ...
|
||||
|
||||
# Export clodbank 3dsmax
|
||||
if MaxAvailable:
|
||||
# Find tools
|
||||
Max = findMax(log, MaxDirectory, MaxExecutable)
|
||||
printLog(log, "")
|
||||
|
||||
printLog(log, ">>> Export clodbank 3dsmax <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + ClodExportDirectory)
|
||||
mkPath(log, ExportBuildDirectory + "/" + ClodTagExportDirectory)
|
||||
for dir in ClodSourceDirectories:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
if (needUpdateDirByTagLog(log, DatabaseDirectory + "/" + dir, ".max", ExportBuildDirectory + "/" + ClodTagExportDirectory, ".max.tag")):
|
||||
scriptSrc = "maxscript/clod_export.ms"
|
||||
scriptDst = MaxUserDirectory + "/scripts/clod_export.ms"
|
||||
outputLogfile = ScriptDirectory + "/processes/clodbank/log.log"
|
||||
outputDirectory = ExportBuildDirectory + "/" + ClodExportDirectory
|
||||
tagDirectory = ExportBuildDirectory + "/" + ClodTagExportDirectory
|
||||
maxSourceDir = DatabaseDirectory + "/" + dir
|
||||
maxRunningTagFile = tagDirectory + "/max_running.tag"
|
||||
tagList = findFiles(log, tagDirectory, "", ".max.tag")
|
||||
tagLen = len(tagList)
|
||||
if os.path.isfile(scriptDst):
|
||||
os.remove(scriptDst)
|
||||
tagDiff = 1
|
||||
sSrc = open(scriptSrc, "r")
|
||||
sDst = open(scriptDst, "w")
|
||||
for line in sSrc:
|
||||
newline = line.replace("%OutputLogfile%", outputLogfile)
|
||||
newline = newline.replace("%MaxSourceDirectory%", maxSourceDir)
|
||||
newline = newline.replace("%OutputDirectory%", outputDirectory)
|
||||
newline = newline.replace("%TagDirectory%", tagDirectory)
|
||||
sDst.write(newline)
|
||||
sSrc.close()
|
||||
sDst.close()
|
||||
zeroRetryLimit = 3
|
||||
while tagDiff > 0:
|
||||
mrt = open(maxRunningTagFile, "w")
|
||||
mrt.write("moe-moe-kyun")
|
||||
mrt.close()
|
||||
printLog(log, "MAXSCRIPT " + scriptDst)
|
||||
subprocess.call([ Max, "-U", "MAXScript", "clod_export.ms", "-q", "-mi", "-mip" ])
|
||||
if os.path.exists(outputLogfile):
|
||||
try:
|
||||
lSrc = open(outputLogfile, "r")
|
||||
for line in lSrc:
|
||||
lineStrip = line.strip()
|
||||
if (len(lineStrip) > 0):
|
||||
printLog(log, lineStrip)
|
||||
lSrc.close()
|
||||
os.remove(outputLogfile)
|
||||
except Exception:
|
||||
printLog(log, "ERROR Failed to read 3dsmax log")
|
||||
else:
|
||||
printLog(log, "WARNING No 3dsmax log")
|
||||
tagList = findFiles(log, tagDirectory, "", ".max.tag")
|
||||
newTagLen = len(tagList)
|
||||
tagDiff = newTagLen - tagLen
|
||||
tagLen = newTagLen
|
||||
addTagDiff = 0
|
||||
if os.path.exists(maxRunningTagFile):
|
||||
printLog(log, "FAIL 3ds Max crashed and/or file export failed!")
|
||||
if tagDiff == 0:
|
||||
if zeroRetryLimit > 0:
|
||||
zeroRetryLimit = zeroRetryLimit - 1
|
||||
addTagDiff = 1
|
||||
else:
|
||||
printLog(log, "FAIL Retry limit reached!")
|
||||
else:
|
||||
addTagDiff = 1
|
||||
os.remove(maxRunningTagFile)
|
||||
printLog(log, "Exported " + str(tagDiff) + " .max files!")
|
||||
tagDiff += addTagDiff
|
||||
os.remove(scriptDst)
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
shutil.move("temp_log.log", "log.log")
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# #################################################################
|
||||
# ## WARNING : this is a generated file, don't change it !
|
||||
# #################################################################
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Export clodbank
|
||||
# \date 2015-01-06-16-31-GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Export clodbank
|
||||
#
|
||||
# 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")
|
||||
if os.path.isfile("temp_log.log"):
|
||||
os.remove("temp_log.log")
|
||||
log = open("temp_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 clodbank")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
# Find tools
|
||||
# ...
|
||||
|
||||
# Export clodbank 3dsmax
|
||||
if MaxAvailable:
|
||||
# Find tools
|
||||
Max = findMax(log, MaxDirectory, MaxExecutable)
|
||||
printLog(log, "")
|
||||
|
||||
printLog(log, ">>> Export clodbank 3dsmax <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + ClodExportDirectory)
|
||||
mkPath(log, ExportBuildDirectory + "/" + ClodTagExportDirectory)
|
||||
for dir in ClodSourceDirectories:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
if (needUpdateDirByTagLog(log, DatabaseDirectory + "/" + dir, ".max", ExportBuildDirectory + "/" + ClodTagExportDirectory, ".max.tag")):
|
||||
scriptSrc = "maxscript/clod_export.ms"
|
||||
scriptDst = MaxUserDirectory + "/scripts/clod_export.ms"
|
||||
outputLogfile = ScriptDirectory + "/processes/clodbank/log.log"
|
||||
outputDirectory = ExportBuildDirectory + "/" + ClodExportDirectory
|
||||
tagDirectory = ExportBuildDirectory + "/" + ClodTagExportDirectory
|
||||
maxSourceDir = DatabaseDirectory + "/" + dir
|
||||
maxRunningTagFile = tagDirectory + "/max_running.tag"
|
||||
tagList = findFiles(log, tagDirectory, "", ".max.tag")
|
||||
tagLen = len(tagList)
|
||||
if os.path.isfile(scriptDst):
|
||||
os.remove(scriptDst)
|
||||
tagDiff = 1
|
||||
sSrc = open(scriptSrc, "r")
|
||||
sDst = open(scriptDst, "w")
|
||||
for line in sSrc:
|
||||
newline = line.replace("%OutputLogfile%", outputLogfile)
|
||||
newline = newline.replace("%MaxSourceDirectory%", maxSourceDir)
|
||||
newline = newline.replace("%OutputDirectory%", outputDirectory)
|
||||
newline = newline.replace("%TagDirectory%", tagDirectory)
|
||||
sDst.write(newline)
|
||||
sSrc.close()
|
||||
sDst.close()
|
||||
zeroRetryLimit = 3
|
||||
while tagDiff > 0:
|
||||
mrt = open(maxRunningTagFile, "w")
|
||||
mrt.write("moe-moe-kyun")
|
||||
mrt.close()
|
||||
printLog(log, "MAXSCRIPT " + scriptDst)
|
||||
subprocess.call([ Max, "-U", "MAXScript", "clod_export.ms", "-q", "-mi", "-mip" ])
|
||||
if os.path.exists(outputLogfile):
|
||||
try:
|
||||
lSrc = open(outputLogfile, "r")
|
||||
for line in lSrc:
|
||||
lineStrip = line.strip()
|
||||
if (len(lineStrip) > 0):
|
||||
printLog(log, lineStrip)
|
||||
lSrc.close()
|
||||
os.remove(outputLogfile)
|
||||
except Exception:
|
||||
printLog(log, "ERROR Failed to read 3dsmax log")
|
||||
else:
|
||||
printLog(log, "WARNING No 3dsmax log")
|
||||
tagList = findFiles(log, tagDirectory, "", ".max.tag")
|
||||
newTagLen = len(tagList)
|
||||
tagDiff = newTagLen - tagLen
|
||||
tagLen = newTagLen
|
||||
addTagDiff = 0
|
||||
if os.path.exists(maxRunningTagFile):
|
||||
printLog(log, "FAIL 3ds Max crashed and/or file export failed!")
|
||||
if tagDiff == 0:
|
||||
if zeroRetryLimit > 0:
|
||||
zeroRetryLimit = zeroRetryLimit - 1
|
||||
addTagDiff = 1
|
||||
else:
|
||||
printLog(log, "FAIL Retry limit reached!")
|
||||
else:
|
||||
addTagDiff = 1
|
||||
os.remove(maxRunningTagFile)
|
||||
printLog(log, "Exported " + str(tagDiff) + " .max files!")
|
||||
tagDiff += addTagDiff
|
||||
os.remove(scriptDst)
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
shutil.move("temp_log.log", "log.log")
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,68 +1,68 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 2_build.py
|
||||
# \brief Build clodbank
|
||||
# \date 2009-03-10 13:13GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Build clodbank
|
||||
#
|
||||
# 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 clodbank")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
# Find tools
|
||||
BuildClodBank = findTool(log, ToolDirectories, BuildClodBankTool, ToolSuffix)
|
||||
printLog(log, "")
|
||||
|
||||
# Build clodbank
|
||||
printLog(log, ">>> Build clodbank <<<")
|
||||
if BuildClodBank == "":
|
||||
toolLogFail(log, BuildClodBankTool, ToolSuffix)
|
||||
else:
|
||||
srcDir = ExportBuildDirectory + "/" + ClodExportDirectory
|
||||
mkPath(log, srcDir)
|
||||
destDir = ExportBuildDirectory + "/" + ClodBankBuildDirectory
|
||||
mkPath(log, destDir)
|
||||
mkPath(log, ActiveProjectDirectory + "/generated")
|
||||
destFile = destDir + "/" + ClodBankFileName
|
||||
configFile = DatabaseDirectory + "/" + ClodConfigFile
|
||||
subprocess.call([ BuildClodBank, ActiveProjectDirectory + "/generated/clod_paths.cfg", configFile, destFile ])
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 2_build.py
|
||||
# \brief Build clodbank
|
||||
# \date 2009-03-10 13:13GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Build clodbank
|
||||
#
|
||||
# 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 clodbank")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
# Find tools
|
||||
BuildClodBank = findTool(log, ToolDirectories, BuildClodBankTool, ToolSuffix)
|
||||
printLog(log, "")
|
||||
|
||||
# Build clodbank
|
||||
printLog(log, ">>> Build clodbank <<<")
|
||||
if BuildClodBank == "":
|
||||
toolLogFail(log, BuildClodBankTool, ToolSuffix)
|
||||
else:
|
||||
srcDir = ExportBuildDirectory + "/" + ClodExportDirectory
|
||||
mkPath(log, srcDir)
|
||||
destDir = ExportBuildDirectory + "/" + ClodBankBuildDirectory
|
||||
mkPath(log, destDir)
|
||||
mkPath(log, ActiveProjectDirectory + "/generated")
|
||||
destFile = destDir + "/" + ClodBankFileName
|
||||
configFile = DatabaseDirectory + "/" + ClodConfigFile
|
||||
subprocess.call([ BuildClodBank, ActiveProjectDirectory + "/generated/clod_paths.cfg", configFile, destFile ])
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,57 +1,57 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 3_install.py
|
||||
# \brief Install clodbank
|
||||
# \date 2009-03-10 13:13GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install clodbank
|
||||
#
|
||||
# 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, "--- Install clodbank")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
printLog(log, ">>> Install clodbank <<<")
|
||||
srcDir = ExportBuildDirectory + "/" + ClodBankBuildDirectory
|
||||
mkPath(log, srcDir)
|
||||
destDir = InstallDirectory + "/" + ShapeInstallDirectory
|
||||
mkPath(log, destDir)
|
||||
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 3_install.py
|
||||
# \brief Install clodbank
|
||||
# \date 2009-03-10 13:13GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install clodbank
|
||||
#
|
||||
# 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 clodbank")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
printLog(log, ">>> Install clodbank <<<")
|
||||
srcDir = ExportBuildDirectory + "/" + ClodBankBuildDirectory
|
||||
mkPath(log, srcDir)
|
||||
destDir = InstallDirectory + "/" + ShapeInstallDirectory
|
||||
mkPath(log, destDir)
|
||||
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,76 +1,76 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 0_setup.py
|
||||
# \brief setup copy
|
||||
# \date 2010-05-24 13:42GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Setup copy
|
||||
#
|
||||
# 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 copy")
|
||||
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 <<<")
|
||||
for dir in CopyDirectSourceDirectories:
|
||||
mkPath(log, dir)
|
||||
for file in CopyDirectSourceFiles:
|
||||
mkPath(log, os.path.dirname(file))
|
||||
for dir in CopyLeveldesignSourceDirectories:
|
||||
mkPath(log, LeveldesignDirectory + "/" + dir)
|
||||
for file in CopyLeveldesignSourceFiles:
|
||||
mkPath(log, os.path.dirname(LeveldesignDirectory + "/" + file))
|
||||
for dir in CopyLeveldesignWorldSourceDirectories:
|
||||
mkPath(log, LeveldesignWorldDirectory + "/" + dir)
|
||||
for file in CopyLeveldesignWorldSourceFiles:
|
||||
mkPath(log, os.path.dirname(LeveldesignWorldDirectory + "/" + file))
|
||||
for dir in CopyLeveldesignDfnSourceDirectories:
|
||||
mkPath(log, LeveldesignDfnDirectory + "/" + dir)
|
||||
for file in CopyLeveldesignDfnSourceFiles:
|
||||
mkPath(log, os.path.dirname(LeveldesignDfnDirectory + "/" + file))
|
||||
for dir in CopyDatabaseSourceDirectories:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
for file in CopyDatabaseSourceFiles:
|
||||
mkPath(log, os.path.dirname(DatabaseDirectory + "/" + file))
|
||||
|
||||
# Setup client directories
|
||||
printLog(log, ">>> Setup client directories <<<")
|
||||
mkPath(log, InstallDirectory + "/" + CopyInstallDirectory)
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 0_setup.py
|
||||
# \brief setup copy
|
||||
# \date 2010-05-24 13:42GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Setup copy
|
||||
#
|
||||
# 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 copy")
|
||||
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 <<<")
|
||||
for dir in CopyDirectSourceDirectories:
|
||||
mkPath(log, dir)
|
||||
for file in CopyDirectSourceFiles:
|
||||
mkPath(log, os.path.dirname(file))
|
||||
for dir in CopyLeveldesignSourceDirectories:
|
||||
mkPath(log, LeveldesignDirectory + "/" + dir)
|
||||
for file in CopyLeveldesignSourceFiles:
|
||||
mkPath(log, os.path.dirname(LeveldesignDirectory + "/" + file))
|
||||
for dir in CopyLeveldesignWorldSourceDirectories:
|
||||
mkPath(log, LeveldesignWorldDirectory + "/" + dir)
|
||||
for file in CopyLeveldesignWorldSourceFiles:
|
||||
mkPath(log, os.path.dirname(LeveldesignWorldDirectory + "/" + file))
|
||||
for dir in CopyLeveldesignDfnSourceDirectories:
|
||||
mkPath(log, LeveldesignDfnDirectory + "/" + dir)
|
||||
for file in CopyLeveldesignDfnSourceFiles:
|
||||
mkPath(log, os.path.dirname(LeveldesignDfnDirectory + "/" + file))
|
||||
for dir in CopyDatabaseSourceDirectories:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
for file in CopyDatabaseSourceFiles:
|
||||
mkPath(log, os.path.dirname(DatabaseDirectory + "/" + file))
|
||||
|
||||
# Setup client directories
|
||||
printLog(log, ">>> Setup client directories <<<")
|
||||
mkPath(log, InstallDirectory + "/" + CopyInstallDirectory)
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,49 +1,49 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Export copy
|
||||
# \date 2010-05-24 13:42GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Export copy
|
||||
#
|
||||
# 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 copy")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Export copy
|
||||
# \date 2010-05-24 13:42GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Export copy
|
||||
#
|
||||
# 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 copy")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,49 +1,49 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 2_build.py
|
||||
# \brief Build copy
|
||||
# \date 2010-05-24 13:42GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Build copy
|
||||
#
|
||||
# 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 copy")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 2_build.py
|
||||
# \brief Build copy
|
||||
# \date 2010-05-24 13:42GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Build copy
|
||||
#
|
||||
# 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 copy")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,85 +1,85 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 3_install.py
|
||||
# \brief Install copy
|
||||
# \date 2010-05-24 13:42GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install copy
|
||||
#
|
||||
# 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, "--- Install copy")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
installPath = InstallDirectory + "/" + CopyInstallDirectory
|
||||
mkPath(log, installPath)
|
||||
|
||||
printLog(log, ">>> Install copy <<<")
|
||||
for dir in CopyDirectSourceDirectories:
|
||||
copyFilesRecursiveNoTreeIfNeeded(log, dir, installPath)
|
||||
for file in CopyDirectSourceFiles:
|
||||
copyFileIfNeeded(log, file, installPath + "/" + os.path.basename(file))
|
||||
for dir in CopyLeveldesignSourceDirectories:
|
||||
copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignDirectory + "/" + dir, installPath)
|
||||
for file in CopyLeveldesignSourceFiles:
|
||||
copyFileIfNeeded(log, LeveldesignDirectory + "/" + file, installPath + "/" + os.path.basename(file))
|
||||
for dir in CopyLeveldesignWorldSourceDirectories:
|
||||
copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignWorldDirectory + "/" + dir, installPath)
|
||||
for file in CopyLeveldesignWorldSourceFiles:
|
||||
copyFileIfNeeded(log, LeveldesignWorldDirectory + "/" + file, installPath + "/" + os.path.basename(file))
|
||||
for dir in CopyLeveldesignDfnSourceDirectories:
|
||||
copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignDfnDirectory + "/" + dir, installPath)
|
||||
for file in CopyLeveldesignDfnSourceFiles:
|
||||
copyFileIfNeeded(log, LeveldesignDfnDirectory + "/" + file, installPath + "/" + os.path.basename(file))
|
||||
for dir in CopyDatabaseSourceDirectories:
|
||||
copyFilesRecursiveNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, installPath)
|
||||
for file in CopyDatabaseSourceFiles:
|
||||
copyFileIfNeeded(log, DatabaseDirectory + "/" + file, installPath + "/" + os.path.basename(file))
|
||||
|
||||
try:
|
||||
CopyWindowsExeDllCfgSourceFiles
|
||||
except NameError:
|
||||
CopyWindowsExeDllCfgSourceFiles = [ ]
|
||||
for file in CopyWindowsExeDllCfgSourceFiles:
|
||||
filePath = findFileMultiDir(log, WindowsExeDllCfgDirectories, file)
|
||||
if (filePath != ""):
|
||||
copyFileIfNeeded(log, filePath, installPath + "/" + os.path.basename(file))
|
||||
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 3_install.py
|
||||
# \brief Install copy
|
||||
# \date 2010-05-24 13:42GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install copy
|
||||
#
|
||||
# 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 copy")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
installPath = InstallDirectory + "/" + CopyInstallDirectory
|
||||
mkPath(log, installPath)
|
||||
|
||||
printLog(log, ">>> Install copy <<<")
|
||||
for dir in CopyDirectSourceDirectories:
|
||||
copyFilesRecursiveNoTreeIfNeeded(log, dir, installPath)
|
||||
for file in CopyDirectSourceFiles:
|
||||
copyFileIfNeeded(log, file, installPath + "/" + os.path.basename(file))
|
||||
for dir in CopyLeveldesignSourceDirectories:
|
||||
copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignDirectory + "/" + dir, installPath)
|
||||
for file in CopyLeveldesignSourceFiles:
|
||||
copyFileIfNeeded(log, LeveldesignDirectory + "/" + file, installPath + "/" + os.path.basename(file))
|
||||
for dir in CopyLeveldesignWorldSourceDirectories:
|
||||
copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignWorldDirectory + "/" + dir, installPath)
|
||||
for file in CopyLeveldesignWorldSourceFiles:
|
||||
copyFileIfNeeded(log, LeveldesignWorldDirectory + "/" + file, installPath + "/" + os.path.basename(file))
|
||||
for dir in CopyLeveldesignDfnSourceDirectories:
|
||||
copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignDfnDirectory + "/" + dir, installPath)
|
||||
for file in CopyLeveldesignDfnSourceFiles:
|
||||
copyFileIfNeeded(log, LeveldesignDfnDirectory + "/" + file, installPath + "/" + os.path.basename(file))
|
||||
for dir in CopyDatabaseSourceDirectories:
|
||||
copyFilesRecursiveNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, installPath)
|
||||
for file in CopyDatabaseSourceFiles:
|
||||
copyFileIfNeeded(log, DatabaseDirectory + "/" + file, installPath + "/" + os.path.basename(file))
|
||||
|
||||
try:
|
||||
CopyWindowsExeDllCfgSourceFiles
|
||||
except NameError:
|
||||
CopyWindowsExeDllCfgSourceFiles = [ ]
|
||||
for file in CopyWindowsExeDllCfgSourceFiles:
|
||||
filePath = findFileMultiDir(log, WindowsExeDllCfgDirectories, file)
|
||||
if (filePath != ""):
|
||||
copyFileIfNeeded(log, filePath, installPath + "/" + os.path.basename(file))
|
||||
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,65 +1,65 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 0_setup.py
|
||||
# \brief Setup displace
|
||||
# \date 2009-03-10-21-45-GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Setup displace
|
||||
#
|
||||
# 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 displace")
|
||||
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 <<<")
|
||||
for dir in DisplaceSourceDirectories:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
|
||||
# Setup export directories
|
||||
printLog(log, ">>> Setup export directories <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + DisplaceExportDirectory)
|
||||
|
||||
# Setup build directories
|
||||
printLog(log, ">>> Setup build directories <<<")
|
||||
|
||||
# Setup client directories
|
||||
printLog(log, ">>> Setup client directories <<<")
|
||||
mkPath(log, InstallDirectory + "/" + DisplaceInstallDirectory)
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 0_setup.py
|
||||
# \brief Setup displace
|
||||
# \date 2009-03-10-21-45-GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Setup displace
|
||||
#
|
||||
# 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 displace")
|
||||
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 <<<")
|
||||
for dir in DisplaceSourceDirectories:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
|
||||
# Setup export directories
|
||||
printLog(log, ">>> Setup export directories <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + DisplaceExportDirectory)
|
||||
|
||||
# Setup build directories
|
||||
printLog(log, ">>> Setup build directories <<<")
|
||||
|
||||
# Setup client directories
|
||||
printLog(log, ">>> Setup client directories <<<")
|
||||
mkPath(log, InstallDirectory + "/" + DisplaceInstallDirectory)
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
@ -1,55 +1,55 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Export displace
|
||||
# \date 2009-03-10-21-45-GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Export displace
|
||||
#
|
||||
# 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 displace")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
mkPath(log, ExportBuildDirectory + "/" + DisplaceExportDirectory)
|
||||
for dir in DisplaceSourceDirectories:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + DisplaceExportDirectory, ".tga")
|
||||
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + DisplaceExportDirectory, ".png")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Export displace
|
||||
# \date 2009-03-10-21-45-GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Export displace
|
||||
#
|
||||
# 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 displace")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
mkPath(log, ExportBuildDirectory + "/" + DisplaceExportDirectory)
|
||||
for dir in DisplaceSourceDirectories:
|
||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + DisplaceExportDirectory, ".tga")
|
||||
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + DisplaceExportDirectory, ".png")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue