Update from core4 branch

merge-requests/7/head
parent 4331e35227
commit 72ccfc9a02

File diff suppressed because it is too large Load Diff

@ -1,94 +1,94 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 1_export.py # \file 1_export.py
# \brief Run all export processes # \brief Run all export processes
# \date 2009-02-18 09:22GMT # \date 2009-02-18 09:22GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Run all export processes # Run all export processes
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
sys.path.append("configuration") sys.path.append("configuration")
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Export') parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Export')
# parser.add_argument('--haltonerror', '-eh', action='store_true') # parser.add_argument('--haltonerror', '-eh', action='store_true')
parser.add_argument('--includeproject', '-ipj', nargs='+') parser.add_argument('--includeproject', '-ipj', nargs='+')
parser.add_argument('--excludeproject', '-epj', nargs='+') parser.add_argument('--excludeproject', '-epj', nargs='+')
parser.add_argument('--includeprocess', '-ipc', nargs='+') parser.add_argument('--includeprocess', '-ipc', nargs='+')
parser.add_argument('--excludeprocess', '-epc', nargs='+') parser.add_argument('--excludeprocess', '-epc', nargs='+')
args = parser.parse_args() args = parser.parse_args()
if not args.includeproject == None and not args.excludeproject == None: if not args.includeproject == None and not args.excludeproject == None:
print "ERROR --includeproject cannot be combined with --excludeproject, exit." print "ERROR --includeproject cannot be combined with --excludeproject, exit."
exit() exit()
if not args.includeprocess == None and not args.excludeprocess == None: if not args.includeprocess == None and not args.excludeprocess == None:
print "ERROR --includeprocess cannot be combined with --excludeprocess, exit." print "ERROR --includeprocess cannot be combined with --excludeprocess, exit."
exit() exit()
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite_local import *
from tools import * from tools import *
sys.path.append(WorkspaceDirectory) sys.path.append(WorkspaceDirectory)
from projects import * from projects import *
# Log error # Log error
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Run the export processes") printLog(log, "--- Run the export processes")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# For each project # For each project
for projectName in ProjectsToProcess: for projectName in ProjectsToProcess:
if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)): if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)):
printLog(log, "PROJECT " + projectName) printLog(log, "PROJECT " + projectName)
os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName)) os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName))
os.chdir("processes") os.chdir("processes")
try: try:
if not args.includeprocess == None: if not args.includeprocess == None:
subprocess.call([ "python", "1_export.py", "--includeprocess" ] + args.includeprocess) subprocess.call([ "python", "1_export.py", "--includeprocess" ] + args.includeprocess)
elif not args.excludeprocess == None: elif not args.excludeprocess == None:
subprocess.call([ "python", "1_export.py", "--excludeprocess" ] + args.excludeprocess) subprocess.call([ "python", "1_export.py", "--excludeprocess" ] + args.excludeprocess)
else: else:
subprocess.call([ "python", "1_export.py" ]) subprocess.call([ "python", "1_export.py" ])
except Exception, e: except Exception, e:
printLog(log, "<" + projectName + "> " + str(e)) printLog(log, "<" + projectName + "> " + str(e))
os.chdir("..") os.chdir("..")
try: try:
projectLog = open("processes/log.log", "r") projectLog = open("processes/log.log", "r")
projectLogData = projectLog.read() projectLogData = projectLog.read()
projectLog.close() projectLog.close()
log.write(projectLogData) log.write(projectLogData)
except Exception, e: except Exception, e:
printLog(log, "<" + projectName + "> " + str(e)) printLog(log, "<" + projectName + "> " + str(e))
else: else:
printLog(log, "IGNORE PROJECT " + projectName) printLog(log, "IGNORE PROJECT " + projectName)
printLog(log, "") printLog(log, "")
log.close() log.close()
if os.path.isfile("1_export.log"): if os.path.isfile("1_export.log"):
os.remove("1_export.log") os.remove("1_export.log")
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_export.log") shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_export.log")
shutil.move("log.log", "1_export.log") shutil.move("log.log", "1_export.log")

@ -1,94 +1,94 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 2_build.py # \file 2_build.py
# \brief Run all build processes # \brief Run all build processes
# \date 2009-02-18 09:22GMT # \date 2009-02-18 09:22GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Run all build processes # Run all build processes
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
sys.path.append("configuration") sys.path.append("configuration")
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Build') parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Build')
# parser.add_argument('--haltonerror', '-eh', action='store_true') # parser.add_argument('--haltonerror', '-eh', action='store_true')
parser.add_argument('--includeproject', '-ipj', nargs='+') parser.add_argument('--includeproject', '-ipj', nargs='+')
parser.add_argument('--excludeproject', '-epj', nargs='+') parser.add_argument('--excludeproject', '-epj', nargs='+')
parser.add_argument('--includeprocess', '-ipc', nargs='+') parser.add_argument('--includeprocess', '-ipc', nargs='+')
parser.add_argument('--excludeprocess', '-epc', nargs='+') parser.add_argument('--excludeprocess', '-epc', nargs='+')
args = parser.parse_args() args = parser.parse_args()
if not args.includeproject == None and not args.excludeproject == None: if not args.includeproject == None and not args.excludeproject == None:
print "ERROR --includeproject cannot be combined with --excludeproject, exit." print "ERROR --includeproject cannot be combined with --excludeproject, exit."
exit() exit()
if not args.includeprocess == None and not args.excludeprocess == None: if not args.includeprocess == None and not args.excludeprocess == None:
print "ERROR --includeprocess cannot be combined with --excludeprocess, exit." print "ERROR --includeprocess cannot be combined with --excludeprocess, exit."
exit() exit()
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite_local import *
from tools import * from tools import *
sys.path.append(WorkspaceDirectory) sys.path.append(WorkspaceDirectory)
from projects import * from projects import *
# Log error # Log error
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Run the build processes") printLog(log, "--- Run the build processes")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# For each project # For each project
for projectName in ProjectsToProcess: for projectName in ProjectsToProcess:
if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)): if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)):
printLog(log, "PROJECT " + projectName) printLog(log, "PROJECT " + projectName)
os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName)) os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName))
os.chdir("processes") os.chdir("processes")
try: try:
if not args.includeprocess == None: if not args.includeprocess == None:
subprocess.call([ "python", "2_build.py", "--includeprocess" ] + args.includeprocess) subprocess.call([ "python", "2_build.py", "--includeprocess" ] + args.includeprocess)
elif not args.excludeprocess == None: elif not args.excludeprocess == None:
subprocess.call([ "python", "2_build.py", "--excludeprocess" ] + args.excludeprocess) subprocess.call([ "python", "2_build.py", "--excludeprocess" ] + args.excludeprocess)
else: else:
subprocess.call([ "python", "2_build.py" ]) subprocess.call([ "python", "2_build.py" ])
except Exception, e: except Exception, e:
printLog(log, "<" + projectName + "> " + str(e)) printLog(log, "<" + projectName + "> " + str(e))
os.chdir("..") os.chdir("..")
try: try:
projectLog = open("processes/log.log", "r") projectLog = open("processes/log.log", "r")
projectLogData = projectLog.read() projectLogData = projectLog.read()
projectLog.close() projectLog.close()
log.write(projectLogData) log.write(projectLogData)
except Exception, e: except Exception, e:
printLog(log, "<" + projectName + "> " + str(e)) printLog(log, "<" + projectName + "> " + str(e))
else: else:
printLog(log, "IGNORE PROJECT " + projectName) printLog(log, "IGNORE PROJECT " + projectName)
printLog(log, "") printLog(log, "")
log.close() log.close()
if os.path.isfile("2_build.log"): if os.path.isfile("2_build.log"):
os.remove("2_build.log") os.remove("2_build.log")
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_build.log") shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_build.log")
shutil.move("log.log", "2_build.log") shutil.move("log.log", "2_build.log")

@ -1,94 +1,94 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 3_install.py # \file 3_install.py
# \brief Run all install processes # \brief Run all install processes
# \date 2009-02-18 16:19GMT # \date 2009-02-18 16:19GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Run all install processes # Run all install processes
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
sys.path.append("configuration") sys.path.append("configuration")
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Install') parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Install')
# parser.add_argument('--haltonerror', '-eh', action='store_true') # parser.add_argument('--haltonerror', '-eh', action='store_true')
parser.add_argument('--includeproject', '-ipj', nargs='+') parser.add_argument('--includeproject', '-ipj', nargs='+')
parser.add_argument('--excludeproject', '-epj', nargs='+') parser.add_argument('--excludeproject', '-epj', nargs='+')
parser.add_argument('--includeprocess', '-ipc', nargs='+') parser.add_argument('--includeprocess', '-ipc', nargs='+')
parser.add_argument('--excludeprocess', '-epc', nargs='+') parser.add_argument('--excludeprocess', '-epc', nargs='+')
args = parser.parse_args() args = parser.parse_args()
if not args.includeproject == None and not args.excludeproject == None: if not args.includeproject == None and not args.excludeproject == None:
print "ERROR --includeproject cannot be combined with --excludeproject, exit." print "ERROR --includeproject cannot be combined with --excludeproject, exit."
exit() exit()
if not args.includeprocess == None and not args.excludeprocess == None: if not args.includeprocess == None and not args.excludeprocess == None:
print "ERROR --includeprocess cannot be combined with --excludeprocess, exit." print "ERROR --includeprocess cannot be combined with --excludeprocess, exit."
exit() exit()
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite_local import *
from tools import * from tools import *
sys.path.append(WorkspaceDirectory) sys.path.append(WorkspaceDirectory)
from projects import * from projects import *
# Log error # Log error
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Run the install processes") printLog(log, "--- Run the install processes")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# For each project # For each project
for projectName in ProjectsToProcess: for projectName in ProjectsToProcess:
if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)): if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)):
printLog(log, "PROJECT " + projectName) printLog(log, "PROJECT " + projectName)
os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName)) os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName))
os.chdir("processes") os.chdir("processes")
try: try:
if not args.includeprocess == None: if not args.includeprocess == None:
subprocess.call([ "python", "3_install.py", "--includeprocess" ] + args.includeprocess) subprocess.call([ "python", "3_install.py", "--includeprocess" ] + args.includeprocess)
elif not args.excludeprocess == None: elif not args.excludeprocess == None:
subprocess.call([ "python", "3_install.py", "--excludeprocess" ] + args.excludeprocess) subprocess.call([ "python", "3_install.py", "--excludeprocess" ] + args.excludeprocess)
else: else:
subprocess.call([ "python", "3_install.py" ]) subprocess.call([ "python", "3_install.py" ])
except Exception, e: except Exception, e:
printLog(log, "<" + projectName + "> " + str(e)) printLog(log, "<" + projectName + "> " + str(e))
os.chdir("..") os.chdir("..")
try: try:
projectLog = open("processes/log.log", "r") projectLog = open("processes/log.log", "r")
projectLogData = projectLog.read() projectLogData = projectLog.read()
projectLog.close() projectLog.close()
log.write(projectLogData) log.write(projectLogData)
except Exception, e: except Exception, e:
printLog(log, "<" + projectName + "> " + str(e)) printLog(log, "<" + projectName + "> " + str(e))
else: else:
printLog(log, "IGNORE PROJECT " + projectName) printLog(log, "IGNORE PROJECT " + projectName)
printLog(log, "") printLog(log, "")
log.close() log.close()
if os.path.isfile("3_install.log"): if os.path.isfile("3_install.log"):
os.remove("3_install.log") os.remove("3_install.log")
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_install.log") shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_install.log")
shutil.move("log.log", "3_install.log") shutil.move("log.log", "3_install.log")

@ -1,181 +1,181 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 9_upload.py # \file 9_upload.py
# \brief Upload data to servers # \brief Upload data to servers
# \date 2009-02-18 16:19GMT # \date 2009-02-18 16:19GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Game data build pipeline. # Game data build pipeline.
# Upload data to servers # Upload data to servers
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2011 Kaetemi # Copyright (C) 2011 Kaetemi
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("configuration") sys.path.append("configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite_local import *
from tools import * from tools import *
try: try:
from upload import * from upload import *
except ImportError: except ImportError:
# Not documenting this. Because we can. # Not documenting this. Because we can.
printLog(log, "ERROR Upload not configured, bye.") printLog(log, "ERROR Upload not configured, bye.")
exit() exit()
sys.path.append(WorkspaceDirectory) sys.path.append(WorkspaceDirectory)
from projects import * from projects import *
# Log error # Log error
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Upload data to servers") printLog(log, "--- Upload data to servers")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Find tools # Find tools
# Not documenting this. Because we can. # Not documenting this. Because we can.
Psftp = findFileMultiDir(log, ToolDirectories + WindowsExeDllCfgDirectories, UploadPsftpTool) Psftp = findFileMultiDir(log, ToolDirectories + WindowsExeDllCfgDirectories, UploadPsftpTool)
printLog(log, "PSFTP " + Psftp) printLog(log, "PSFTP " + Psftp)
def downloadVersionTag(server, user, sshkey, dir): def downloadVersionTag(server, user, sshkey, dir):
if os.path.isfile("upload.tag"): if os.path.isfile("upload.tag"):
os.remove("upload.tag") os.remove("upload.tag")
if os.path.isfile("upload.batch"): if os.path.isfile("upload.batch"):
os.remove("upload.batch") os.remove("upload.batch")
ub = open("upload.batch", "w") ub = open("upload.batch", "w")
ub.write("cd " + dir + "\n") ub.write("cd " + dir + "\n")
ub.write("get upload.tag upload.tag\n") ub.write("get upload.tag upload.tag\n")
ub.write("quit\n") ub.write("quit\n")
ub.close() ub.close()
subprocess.call([ Psftp, "-b", "upload.batch", "-i", sshkey, user + "@" + server ]) subprocess.call([ Psftp, "-b", "upload.batch", "-i", sshkey, user + "@" + server ])
os.remove("upload.batch") os.remove("upload.batch")
if os.path.isfile("upload.tag"): if os.path.isfile("upload.tag"):
ft = open("upload.tag") ft = open("upload.tag")
result = float(ft.read()) # float, really result = float(ft.read()) # float, really
ft.close() ft.close()
os.remove("upload.tag") os.remove("upload.tag")
printLog(log, "INFO Upload tag is " + str(result)) printLog(log, "INFO Upload tag is " + str(result))
return result return result
else: else:
printLog(log, "WARNING Upload tag not found, uploading everything") printLog(log, "WARNING Upload tag not found, uploading everything")
return 0 return 0
def isDirectoryNeeded(ft, dir): def isDirectoryNeeded(ft, dir):
files = os.listdir(dir) files = os.listdir(dir)
for fileName in files: for fileName in files:
if isLegalFileName(fileName): if isLegalFileName(fileName):
fileFull = dir + "/" + fileName fileFull = dir + "/" + fileName
if os.path.isfile(fileFull): if os.path.isfile(fileFull):
nftf = os.stat(fileFull).st_mtime nftf = os.stat(fileFull).st_mtime
if nftf > ft: if nftf > ft:
return True return True
elif os.path.isdir(fileFull): elif os.path.isdir(fileFull):
if isDirectoryNeeded(ft, fileFull): if isDirectoryNeeded(ft, fileFull):
return True return True
elif not os.path.isdir(fileFull): elif not os.path.isdir(fileFull):
printLog(log, "isDirectoryNeeded: file not dir or file?!" + fileFull) printLog(log, "isDirectoryNeeded: file not dir or file?!" + fileFull)
return False return False
def listDirectoryUpload(ft, ub, udb, dir): def listDirectoryUpload(ft, ub, udb, dir):
nft = 0 nft = 0
files = os.listdir(dir) files = os.listdir(dir)
for fileName in files: for fileName in files:
if isLegalFileName(fileName): if isLegalFileName(fileName):
fileFull = dir + "/" + fileName fileFull = dir + "/" + fileName
if os.path.isfile(fileFull): if os.path.isfile(fileFull):
nftf = os.stat(fileFull).st_mtime nftf = os.stat(fileFull).st_mtime
if nftf > ft: if nftf > ft:
ub.write("put " + fileFull + " " + fileName + "\n") ub.write("put " + fileFull + " " + fileName + "\n")
if nftf > nft: if nftf > nft:
nft = nftf nft = nftf
elif os.path.isdir(fileFull): elif os.path.isdir(fileFull):
if isDirectoryNeeded(ft, fileFull): if isDirectoryNeeded(ft, fileFull):
udb.write("mkdir " + fileName + "\n") udb.write("mkdir " + fileName + "\n")
ub.write("cd " + fileName + "\n") ub.write("cd " + fileName + "\n")
udb.write("cd " + fileName + "\n") udb.write("cd " + fileName + "\n")
nft2 = listDirectoryUpload(ft, ub, udb, fileFull) nft2 = listDirectoryUpload(ft, ub, udb, fileFull)
if (nft2 > nft): if (nft2 > nft):
nft = nft2 nft = nft2
ub.write("cd ..\n") ub.write("cd ..\n")
udb.write("cd ..\n") udb.write("cd ..\n")
elif not os.path.isdir(fileFull): elif not os.path.isdir(fileFull):
printLog(log, "listDirectoryUpload: file not dir or file?!" + fileFull) printLog(log, "listDirectoryUpload: file not dir or file?!" + fileFull)
return nft return nft
def uploadSftp(server, user, sshkey, dir_to, dir_from, addcmd): def uploadSftp(server, user, sshkey, dir_to, dir_from, addcmd):
ft = downloadVersionTag(server, user, sshkey, dir_to) ft = downloadVersionTag(server, user, sshkey, dir_to)
if isDirectoryNeeded(ft, dir_from): if isDirectoryNeeded(ft, dir_from):
if os.path.isfile("upload_dir.batch"): if os.path.isfile("upload_dir.batch"):
os.remove("upload_dir.batch") os.remove("upload_dir.batch")
if os.path.isfile("upload.batch"): if os.path.isfile("upload.batch"):
os.remove("upload.batch") os.remove("upload.batch")
udb = open("upload_dir.batch", "w") udb = open("upload_dir.batch", "w")
udb.write("cd " + dir_to + "\n") udb.write("cd " + dir_to + "\n")
ub = open("upload.batch", "w") ub = open("upload.batch", "w")
ub.write("cd " + dir_to + "\n") ub.write("cd " + dir_to + "\n")
for ac in addcmd: for ac in addcmd:
ub.write(ac + "\n") ub.write(ac + "\n")
ftn = listDirectoryUpload(ft, ub, udb, dir_from) ftn = listDirectoryUpload(ft, ub, udb, dir_from)
if (ft > ftn): if (ft > ftn):
ftn = ft ftn = ft
nft = open("upload.tag", "w") nft = open("upload.tag", "w")
nft.write(str(ftn)) nft.write(str(ftn))
nft.close() nft.close()
ub.write("put upload.tag upload.tag\n") ub.write("put upload.tag upload.tag\n")
ub.write("quit\n") ub.write("quit\n")
ub.close() ub.close()
udb.write("quit\n") udb.write("quit\n")
udb.close() udb.close()
subprocess.call([ Psftp, "-be", "-b", "upload_dir.batch", "-i", sshkey, user + "@" + server ]) subprocess.call([ Psftp, "-be", "-b", "upload_dir.batch", "-i", sshkey, user + "@" + server ])
subprocess.call([ Psftp, "-b", "upload.batch", "-i", sshkey, user + "@" + server ]) subprocess.call([ Psftp, "-b", "upload.batch", "-i", sshkey, user + "@" + server ])
os.remove("upload_dir.batch") os.remove("upload_dir.batch")
os.remove("upload.batch") os.remove("upload.batch")
os.remove("upload.tag") os.remove("upload.tag")
else: else:
printLog(log, "SKIP " + dir_to) printLog(log, "SKIP " + dir_to)
printLog(log, ">>> Upload patch <<<") printLog(log, ">>> Upload patch <<<")
for target in UploadPatch: for target in UploadPatch:
uploadSftp(target[0], target[1], target[2], target[3], ClientPatchDirectory + "/patch", [ ]) uploadSftp(target[0], target[1], target[2], target[3], ClientPatchDirectory + "/patch", [ ])
printLog(log, ">>> Upload data_shard <<<") printLog(log, ">>> Upload data_shard <<<")
for target in UploadShard: for target in UploadShard:
uploadSftp(target[0], target[1], target[2], target[3], DataShardDirectory, [ "rm *.packed_sheets", "rm primitive_cache/*.binprim" ]) uploadSftp(target[0], target[1], target[2], target[3], DataShardDirectory, [ "rm *.packed_sheets", "rm primitive_cache/*.binprim" ])
printLog(log, ">>> Upload data_common <<<") printLog(log, ">>> Upload data_common <<<")
for target in UploadCommon: for target in UploadCommon:
uploadSftp(target[0], target[1], target[2], target[3], DataCommonDirectory, [ ]) uploadSftp(target[0], target[1], target[2], target[3], DataCommonDirectory, [ ])
printLog(log, ">>> Upload data_leveldesign/leveldesign <<<") printLog(log, ">>> Upload data_leveldesign/leveldesign <<<")
for target in UploadLeveldesign: for target in UploadLeveldesign:
uploadSftp(target[0], target[1], target[2], target[3], LeveldesignDirectory, [ ]) uploadSftp(target[0], target[1], target[2], target[3], LeveldesignDirectory, [ ])
printLog(log, ">>> Upload data_leveldesign/primitives <<<") printLog(log, ">>> Upload data_leveldesign/primitives <<<")
for target in UploadPrimitives: for target in UploadPrimitives:
uploadSftp(target[0], target[1], target[2], target[3], PrimitivesDirectory, [ ]) uploadSftp(target[0], target[1], target[2], target[3], PrimitivesDirectory, [ ])
log.close() log.close()
if os.path.isfile("9_upload.log"): if os.path.isfile("9_upload.log"):
os.remove("9_upload.log") os.remove("9_upload.log")
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_upload.log") shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_upload.log")
shutil.move("log.log", "9_upload.log") shutil.move("log.log", "9_upload.log")

@ -1,74 +1,74 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file a1_worldedit_data.py # \file a1_worldedit_data.py
# \brief Install worldedit data # \brief Install worldedit data
# \date 2014-09-10 14:01GMT # \date 2014-09-10 14:01GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Install worldedit data # Install worldedit data
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2014 by authors # Copyright (C) 2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("configuration") sys.path.append("configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite_local import *
from tools import * from tools import *
sys.path.append(WorkspaceDirectory) sys.path.append(WorkspaceDirectory)
from projects import * from projects import *
# Log error # Log error
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Install worldedit data") printLog(log, "--- Install worldedit data")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
for ecosystem in WorldEditEcosystems: for ecosystem in WorldEditEcosystems:
ecosystemName = ecosystem[0] ecosystemName = ecosystem[0]
srcZoneLigos = ExportBuildDirectory + "/ecosystems/" + ecosystemName + "/ligo_es/zoneligos/" srcZoneLigos = ExportBuildDirectory + "/ecosystems/" + ecosystemName + "/ligo_es/zoneligos/"
dstZoneLigos = WorldEditInstallDirectory + "/" + ecosystemName + "/zoneligos/" dstZoneLigos = WorldEditInstallDirectory + "/" + ecosystemName + "/zoneligos/"
mkPath(log, srcZoneLigos) mkPath(log, srcZoneLigos)
mkPath(log, dstZoneLigos) mkPath(log, dstZoneLigos)
copyFilesNoTreeIfNeeded(log, srcZoneLigos, dstZoneLigos) copyFilesNoTreeIfNeeded(log, srcZoneLigos, dstZoneLigos)
srcZoneBitmaps = DatabaseDirectory + "/landscape/ligo/" + ecosystemName + "/zonebitmaps/" srcZoneBitmaps = DatabaseDirectory + "/landscape/ligo/" + ecosystemName + "/zonebitmaps/"
dstZoneBitmaps = WorldEditInstallDirectory + "/" + ecosystemName + "/zonebitmaps/" dstZoneBitmaps = WorldEditInstallDirectory + "/" + ecosystemName + "/zonebitmaps/"
mkPath(log, srcZoneBitmaps) mkPath(log, srcZoneBitmaps)
mkPath(log, dstZoneBitmaps) mkPath(log, dstZoneBitmaps)
copyFilesExtNoTreeIfNeeded(log, srcZoneBitmaps, dstZoneBitmaps, ".tga") copyFilesExtNoTreeIfNeeded(log, srcZoneBitmaps, dstZoneBitmaps, ".tga")
copyFilesExtNoTreeIfNeeded(log, srcZoneBitmaps, dstZoneBitmaps, ".png") copyFilesExtNoTreeIfNeeded(log, srcZoneBitmaps, dstZoneBitmaps, ".png")
dstCollisionMap = WorldEditInstallDirectory + "/" + ecosystemName + "/collisionmap/" dstCollisionMap = WorldEditInstallDirectory + "/" + ecosystemName + "/collisionmap/"
mkPath(log, dstCollisionMap) mkPath(log, dstCollisionMap)
for continentName in ecosystem[1]: for continentName in ecosystem[1]:
srcCollisionMap = ExportBuildDirectory + "/continents/" + continentName + "/ai_wmap/" srcCollisionMap = ExportBuildDirectory + "/continents/" + continentName + "/ai_wmap/"
mkPath(log, srcCollisionMap) mkPath(log, srcCollisionMap)
copyFilesExtNoTreeIfNeeded(log, srcCollisionMap, dstCollisionMap, ".tga") copyFilesExtNoTreeIfNeeded(log, srcCollisionMap, dstCollisionMap, ".tga")
copyFilesExtNoTreeIfNeeded(log, srcCollisionMap, dstCollisionMap, ".png") copyFilesExtNoTreeIfNeeded(log, srcCollisionMap, dstCollisionMap, ".png")
printLog(log, "") printLog(log, "")
log.close() log.close()
if os.path.isfile("a1_worldedit_data.log"): if os.path.isfile("a1_worldedit_data.log"):
os.remove("a1_worldedit_data.log") os.remove("a1_worldedit_data.log")
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_worldedit_data.log") shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_worldedit_data.log")
shutil.move("log.log", "a1_worldedit_data.log") shutil.move("log.log", "a1_worldedit_data.log")

@ -1,79 +1,108 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file b1_client_dev.py # \file b1_client_dev.py
# \brief Install to client dev # \brief Install to client dev
# \date 2009-02-18 16:19GMT # \date 2009-02-18 16:19GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Install to client dev # Install to client dev
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util, socket
sys.path.append("configuration") sys.path.append("configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite_local import *
from tools import * from tools import *
sys.path.append(WorkspaceDirectory) sys.path.append(WorkspaceDirectory)
from projects import * from projects import *
# Log error # Log error
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Install to client dev") printLog(log, "--- Install to client dev")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
if not os.path.isfile(ClientDevDirectory + "/client.cfg"): mkPath(log, ClientDevLiveDirectory)
printLog(log, ">>> Generate client.cfg <<<") if not os.path.isfile(ClientDevLiveDirectory + "/client.cfg"):
cfg = open(ClientDevDirectory + "/client.cfg", "w") printLog(log, ">>> Generate live dev client.cfg <<<")
cfg.write("RootConfigFilename = \"client_default.cfg\";\n") cfg = open(ClientDevLiveDirectory + "/client.cfg", "w")
cfg.write("PreDataPath = {\n") cfg.write("RootConfigFilename = \"client_default.cfg\";\n")
cfg.write("\t\"" + InstallDirectory + "\", \"user\", \"patch\", \"data\", \"examples\" \n") cfg.write("PreDataPath = {\n")
cfg.write("};\n") cfg.write("\t\"user\", \"patch\", \"" + DataCommonDirectory + "\", \"" + GamedevDirectory + "\", \"" + LeveldesignDirectory + "/translation/translated\", \"" + InstallDirectory + "\", \"data\", \"examples\" \n")
cfg.write("PatchWanted = 0;\n") cfg.write("};\n")
cfg.write("DisplayLuaDebugInfo = 1;\n") cfg.write("PreLoadPath = \"" + InstallDirectory + "\";\n")
cfg.write("AllowDebugLua = 1;\n") cfg.write("PatchWanted = 0;\n")
cfg.write("FullScreen = 0;\n") cfg.write("DisplayLuaDebugInfo = 1;\n")
printLog(log, "") cfg.write("AllowDebugLua = 1;\n")
cfg.write("FullScreen = 0;\n")
printLog(log, ">>> Install data <<<") cfg.flush()
for category in InstallClientData: cfg.close()
if (category["UnpackTo"] != None): printLog(log, "")
printLog(log, "CATEGORY " + category["Name"])
targetPath = ClientDevDirectory mkPath(log, ClientDevDirectory)
if (category["UnpackTo"] != ""): if not os.path.isfile(ClientDevDirectory + "/client.cfg"):
targetPath += "/" + category["UnpackTo"] printLog(log, ">>> Generate local dev client.cfg <<<")
mkPath(log, targetPath) cfg = open(ClientDevDirectory + "/client.cfg", "w")
for package in category["Packages"]: cfgr = open(ClientDevLiveDirectory + "/client.cfg", "r")
printLog(log, "PACKAGE " + package[0]) for l in cfgr:
mkPath(log, InstallDirectory + "/" + package[0]) cfg.write(l)
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + package[0], targetPath) cfgr.close()
printLog(log, "") cfg.write("StartupHost = \"http://" + socket.gethostname() + ":9042\";\n")
cfg.write("Application = {\n")
log.close() cfg.write(" \"dev\", \"./client_ryzom_r.exe\", \"./\" \n")
if os.path.isfile("b1_client_dev.log"): cfg.write("};\n")
os.remove("b1_client_dev.log") cfg.flush()
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_client_dev.log") cfg.close()
shutil.move("log.log", "b1_client_dev.log") 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")

@ -1,93 +1,93 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file b2_shard_data.py # \file b2_shard_data.py
# \brief Install shard data # \brief Install shard data
# \date 2009-02-18 16:19GMT # \date 2009-02-18 16:19GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Install shard data # Install shard data
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("configuration") sys.path.append("configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite_local import *
from tools import * from tools import *
sys.path.append(WorkspaceDirectory) sys.path.append(WorkspaceDirectory)
from projects import * from projects import *
# Log error # Log error
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Install shard data") printLog(log, "--- Install shard data")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
for dir in InstallShardDataDirectories: for dir in InstallShardDataDirectories:
printLog(log, "SHARD PACKAGE " + dir) printLog(log, "SHARD PACKAGE " + dir)
mkPath(log, ShardInstallDirectory + "/" + dir) mkPath(log, ShardInstallDirectory + "/" + dir)
printLog(log, "FROM " + dir) printLog(log, "FROM " + dir)
mkPath(log, InstallDirectory + "/" + dir) mkPath(log, InstallDirectory + "/" + dir)
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + dir, ShardInstallDirectory + "/" + dir) copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + dir, ShardInstallDirectory + "/" + dir)
for package in InstallShardDataFiles: for package in InstallShardDataFiles:
dstDir = package[0] dstDir = package[0]
mkPath(log, ShardInstallDirectory + "/" + dstDir) mkPath(log, ShardInstallDirectory + "/" + dstDir)
printLog(log, "SHARD PACKAGE " + dstDir) printLog(log, "SHARD PACKAGE " + dstDir)
copyFileListNoTreeIfNeeded(log, InstallDirectory, ShardInstallDirectory + "/" + dstDir, package[1]) copyFileListNoTreeIfNeeded(log, InstallDirectory, ShardInstallDirectory + "/" + dstDir, package[1])
for multiDir in InstallShardDataMultiDirectories: for multiDir in InstallShardDataMultiDirectories:
dstDir = multiDir[0] dstDir = multiDir[0]
mkPath(log, ShardInstallDirectory + "/" + dstDir) mkPath(log, ShardInstallDirectory + "/" + dstDir)
printLog(log, "SHARD PACKAGE " + dstDir) printLog(log, "SHARD PACKAGE " + dstDir)
for srcDir in multiDir[1]: for srcDir in multiDir[1]:
printLog(log, "FROM " + srcDir) printLog(log, "FROM " + srcDir)
mkPath(log, InstallDirectory + "/" + srcDir) mkPath(log, InstallDirectory + "/" + srcDir)
mkPath(log, ShardInstallDirectory + "/" + dstDir + "/" + srcDir) mkPath(log, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + srcDir, ShardInstallDirectory + "/" + dstDir + "/" + srcDir) copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + srcDir, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
for multiDir in InstallShardDataPrimitivesDirectories: for multiDir in InstallShardDataPrimitivesDirectories:
dstDir = multiDir[0] dstDir = multiDir[0]
mkPath(log, ShardInstallDirectory + "/" + dstDir) mkPath(log, ShardInstallDirectory + "/" + dstDir)
printLog(log, "SHARD PACKAGE " + dstDir) printLog(log, "SHARD PACKAGE " + dstDir)
for srcDir in multiDir[1]: for srcDir in multiDir[1]:
printLog(log, "FROM PRIMITIVES " + srcDir) printLog(log, "FROM PRIMITIVES " + srcDir)
mkPath(log, PrimitivesDirectory + "/" + srcDir) mkPath(log, PrimitivesDirectory + "/" + srcDir)
mkPath(log, ShardInstallDirectory + "/" + dstDir + "/" + srcDir) mkPath(log, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
copyFilesNoTreeIfNeeded(log, PrimitivesDirectory + "/" + srcDir, ShardInstallDirectory + "/" + dstDir + "/" + srcDir) copyFilesNoTreeIfNeeded(log, PrimitivesDirectory + "/" + srcDir, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
for execDir in InstallShardDataExecutables: for execDir in InstallShardDataExecutables:
dstDir = execDir[0] dstDir = execDir[0]
mkPath(log, LinuxServiceExecutableDirectory) mkPath(log, LinuxServiceExecutableDirectory)
mkPath(log, PatchmanCfgDefaultDirectory) mkPath(log, PatchmanCfgDefaultDirectory)
mkPath(log, InstallDirectory) mkPath(log, InstallDirectory)
mkPath(log, ShardInstallDirectory + "/" + dstDir) mkPath(log, ShardInstallDirectory + "/" + dstDir)
printLog(log, "SHARD PACKAGE " + dstDir) printLog(log, "SHARD PACKAGE " + dstDir)
copyFileIfNeeded(log, LinuxServiceExecutableDirectory + "/" + execDir[1][1], ShardInstallDirectory + "/" + dstDir + "/" + execDir[1][0]) copyFileIfNeeded(log, LinuxServiceExecutableDirectory + "/" + execDir[1][1], ShardInstallDirectory + "/" + dstDir + "/" + execDir[1][0])
copyFileListNoTreeIfNeeded(log, PatchmanCfgDefaultDirectory, ShardInstallDirectory + "/" + dstDir, execDir[2]) copyFileListNoTreeIfNeeded(log, PatchmanCfgDefaultDirectory, ShardInstallDirectory + "/" + dstDir, execDir[2])
copyFileListNoTreeIfNeeded(log, InstallDirectory, ShardInstallDirectory + "/" + dstDir, execDir[3]) copyFileListNoTreeIfNeeded(log, InstallDirectory, ShardInstallDirectory + "/" + dstDir, execDir[3])
printLog(log, "") printLog(log, "")
log.close() log.close()
if os.path.isfile("b2_shard_data.log"): if os.path.isfile("b2_shard_data.log"):
os.remove("b2_shard_data.log") os.remove("b2_shard_data.log")
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_shard_data.log") shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_shard_data.log")
shutil.move("log.log", "b2_shard_data.log") shutil.move("log.log", "b2_shard_data.log")

@ -1,114 +1,123 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file c1_shard_patch.py # \file c1_shard_patch.py
# \brief Create a new patch for the patchman bridge # \brief Create a new patch for the patchman bridge
# \date 2014-02-20 00:27GMT # \date 2014-02-20 00:27GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Create a new patch for the patchman bridge # Create a new patch for the patchman bridge
# #
# NeL - MMORPG Framework <http://www.ryzomcore.org/> # NeL - MMORPG Framework <http://www.ryzomcore.org/>
# Copyright (C) 2014 by authors # Copyright (C) 2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util, tarfile, argparse import time, sys, os, shutil, subprocess, distutils.dir_util, tarfile, argparse
sys.path.append("configuration") sys.path.append("configuration")
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Shard Patch') parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Shard Patch')
parser.add_argument('--admininstall', '-ai', action='store_true') parser.add_argument('--admininstall', '-ai', action='store_true')
args = parser.parse_args() args = parser.parse_args()
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite_local import *
from tools import * from tools import *
sys.path.append(WorkspaceDirectory) sys.path.append(WorkspaceDirectory)
from projects import * from projects import *
# Log error # Log error
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Create a new patch for the patchman bridge") printLog(log, "--- Create a new patch for the patchman bridge")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# List the directories that will be used # Find tools
archiveDirectories = [ ] SevenZip = findTool(log, ToolDirectories, SevenZipTool, ToolSuffix)
for dir in InstallShardDataDirectories:
if not dir in archiveDirectories: # List the directories that will be used
archiveDirectories += [ dir ] archiveDirectories = [ ]
for package in InstallShardDataFiles: for dir in InstallShardDataDirectories:
dstDir = package[0] if not dir in archiveDirectories:
if not dstDir in archiveDirectories: archiveDirectories += [ dir ]
archiveDirectories += [ dstDir ] for package in InstallShardDataFiles:
for multiDir in InstallShardDataMultiDirectories: dstDir = package[0]
dstDir = multiDir[0] if not dstDir in archiveDirectories:
if not dstDir in archiveDirectories: archiveDirectories += [ dstDir ]
archiveDirectories += [ dstDir ] for multiDir in InstallShardDataMultiDirectories:
for multiDir in InstallShardDataPrimitivesDirectories: dstDir = multiDir[0]
dstDir = multiDir[0] if not dstDir in archiveDirectories:
if not dstDir in archiveDirectories: archiveDirectories += [ dstDir ]
archiveDirectories += [ dstDir ] for multiDir in InstallShardDataPrimitivesDirectories:
for execDir in InstallShardDataExecutables: dstDir = multiDir[0]
dstDir = execDir[0] if not dstDir in archiveDirectories:
if not dstDir in archiveDirectories: archiveDirectories += [ dstDir ]
archiveDirectories += [ dstDir ] for execDir in InstallShardDataExecutables:
dstDir = execDir[0]
printLog(log, ">>> Archive new admin_install.tgz <<<") if not dstDir in archiveDirectories:
mkPath(log, PatchmanBridgeServerDirectory) archiveDirectories += [ dstDir ]
adminInstallTgz = PatchmanBridgeServerDirectory + "/admin_install.tgz"
patchmanExecutable = LinuxServiceExecutableDirectory + "/ryzom_patchman_service" printLog(log, ">>> Archive new admin_install.tgz <<<")
if needUpdateDirNoSubdirFile(log, PatchmanCfgAdminDirectory + "/bin", adminInstallTgz) or needUpdateDirNoSubdirFile(log, PatchmanCfgAdminDirectory + "/patchman", adminInstallTgz) or needUpdate(log, patchmanExecutable, adminInstallTgz): mkPath(log, PatchmanBridgeServerDirectory)
printLog(log, "WRITE " + adminInstallTgz) adminInstallTgz = PatchmanBridgeServerDirectory + "/admin_install.tgz"
if os.path.isfile(adminInstallTgz): patchmanExecutable = LinuxServiceExecutableDirectory + "/ryzom_patchman_service"
os.remove(adminInstallTgz) if needUpdateDirNoSubdirFile(log, PatchmanCfgAdminDirectory + "/bin", adminInstallTgz) or needUpdateDirNoSubdirFile(log, PatchmanCfgAdminDirectory + "/patchman", adminInstallTgz) or needUpdate(log, patchmanExecutable, adminInstallTgz):
tar = tarfile.open(adminInstallTgz, "w:gz") printLog(log, "WRITE " + adminInstallTgz)
tar.add(PatchmanCfgAdminDirectory + "/bin", arcname = "bin") if os.path.isfile(adminInstallTgz):
tar.add(PatchmanCfgAdminDirectory + "/patchman", arcname = "patchman") os.remove(adminInstallTgz)
tar.add(patchmanExecutable, arcname = "patchman/ryzom_patchman_service") tar = tarfile.open(adminInstallTgz, "w:gz")
tar.close() tar.add(PatchmanCfgAdminDirectory + "/bin", arcname = "bin")
else: tar.add(PatchmanCfgAdminDirectory + "/patchman", arcname = "patchman")
printLog(log, "SKIP " + adminInstallTgz) tar.add(patchmanExecutable, arcname = "patchman/ryzom_patchman_service")
printLog(log, "") tar.close()
else:
if not args.admininstall: printLog(log, "SKIP " + adminInstallTgz)
printLog(log, ">>> Create new version <<<") printLog(log, "")
newVersion = 1
vstr = str(newVersion).zfill(6) if not args.admininstall:
vpath = PatchmanBridgeServerDirectory + "/" + vstr if SevenZip == "":
while os.path.exists(vpath): toolLogFail(log, SevenZipTool, ToolSuffix)
newVersion = newVersion + 1 else:
vstr = str(newVersion).zfill(6) printLog(log, ">>> Create new version <<<")
vpath = PatchmanBridgeServerDirectory + "/" + vstr newVersion = 1
mkPath(log, vpath) vstr = str(newVersion).zfill(6)
for dir in archiveDirectories: vpath = PatchmanBridgeServerDirectory + "/" + vstr
mkPath(log, ShardInstallDirectory + "/" + dir) while os.path.exists(vpath):
tgzPath = vpath + "/" + dir + ".tgz" newVersion = newVersion + 1
printLog(log, "WRITE " + tgzPath) vstr = str(newVersion).zfill(6)
tar = tarfile.open(tgzPath, "w:gz") vpath = PatchmanBridgeServerDirectory + "/" + vstr
tar.add(ShardInstallDirectory + "/" + dir, arcname = dir) mkPath(log, vpath)
tar.close() for dir in archiveDirectories:
printLog(log, "") mkPath(log, ShardInstallDirectory + "/" + dir)
# tgzPath = vpath + "/" + dir + ".tgz"
log.close() # printLog(log, "WRITE " + tgzPath)
if os.path.isfile("c1_shard_patch.log"): # tar = tarfile.open(tgzPath, "w:gz")
os.remove("c1_shard_patch.log") # tar.add(ShardInstallDirectory + "/" + dir, arcname = dir)
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_shard_patch.log") # tar.close()
shutil.move("log.log", "c1_shard_patch.log") 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")

File diff suppressed because it is too large Load Diff

@ -1,100 +1,102 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file process.py # \file process.py
# \brief Tools configuration # \brief Tools configuration
# \date 2009-03-10 11:33GMT # \date 2009-03-10 11:33GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Tools configuration. # Tools configuration.
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
# *** PROCESS TIMEOUT *** # *** PROCESS TIMEOUT ***
SkelExportTimeout = 600000 SkelExportTimeout = 600000
SwtExportTimeout = 600000 SwtExportTimeout = 600000
ShapeExportTimeout = 3600000 ShapeExportTimeout = 3600000
ZoneExportTimeout = 1800000 ZoneExportTimeout = 1800000
ZoneBuildDependTimeout = 1800000 ZoneBuildDependTimeout = 1800000
ZoneBuildWeldTimeout = 60000 ZoneBuildWeldTimeout = 60000
ZoneLightBuildTimeout = 600000 ZoneLightBuildTimeout = 600000
ZoneIgLightBuildTimeout = 600000 ZoneIgLightBuildTimeout = 600000
SmallbankBuildTimeout = 60000 SmallbankBuildTimeout = 60000
FarbankBuildTimeout = 180000 FarbankBuildTimeout = 180000
AnimExportTimeout = 1800000 AnimExportTimeout = 1800000
IgExportTimeout = 600000 IgExportTimeout = 600000
CmbExportTimeout = 60000 CmbExportTimeout = 60000
RbankBuildTesselTimeout = 6000000 RbankBuildTesselTimeout = 6000000
RbankBuildSmoothTimeout = 6000000 RbankBuildSmoothTimeout = 6000000
RbankBuildProclocalTimeout = 6000000 RbankBuildProclocalTimeout = 6000000
RbankBuildProcglobalTimeout = 18000000 RbankBuildProcglobalTimeout = 18000000
RbankBuildIndoorTimeout = 18000000 RbankBuildIndoorTimeout = 18000000
# WmapBuildTimeout = 60000 # WmapBuildTimeout = 60000
LigoExportTimeout = 3600000 LigoExportTimeout = 3600000
LigoBuildTimeout = 1800000 LigoBuildTimeout = 1800000
PacsPrimExportTimeout = 600000 PacsPrimExportTimeout = 600000
MapsBuildTimeout = 60000 # 1min MapsBuildTimeout = 60000 # 1min
MaxShapeExportTimeout = 600000 # 10min MaxShapeExportTimeout = 600000 # 10min
# *** TOOLS CONFIGURATION *** # *** TOOLS CONFIGURATION ***
TgaToDdsTool = "tga2dds" TgaToDdsTool = "tga2dds"
BuildInterfaceTool = "build_interface" BuildInterfaceTool = "build_interface"
ExecTimeoutTool = "exec_timeout" ExecTimeoutTool = "exec_timeout"
BuildSmallbankTool = "build_smallbank" BuildSmallbankTool = "build_smallbank"
BuildFarbankTool = "build_far_bank" BuildFarbankTool = "build_far_bank"
ZoneDependenciesTool = "zone_dependencies" ZoneDependenciesTool = "zone_dependencies"
ZoneWelderTool = "zone_welder" ZoneWelderTool = "zone_welder"
ZoneElevationTool = "zone_elevation" ZoneElevationTool = "zone_elevation"
BuildRbankTool = "build_rbank" BuildRbankTool = "build_rbank"
BuildIndoorRbankTool = "build_indoor_rbank" BuildIndoorRbankTool = "build_indoor_rbank"
BuildIgBoxesTool = "build_ig_boxes" BuildIgBoxesTool = "build_ig_boxes"
GetNeighborsTool = "get_neighbors" GetNeighborsTool = "get_neighbors"
ZoneLighterTool = "zone_lighter" ZoneLighterTool = "zone_lighter"
ZoneIgLighterTool = "zone_ig_lighter" ZoneIgLighterTool = "zone_ig_lighter"
IgLighterTool = "ig_lighter" IgLighterTool = "ig_lighter"
AnimBuilderTool = "anim_builder" AnimBuilderTool = "anim_builder"
TileEditTool = "tile_edit" TileEditTool = "tile_edit"
# BuildImagesetTool = "th_build_imageset" # kaetemi stuff, ignore this # BuildImagesetTool = "th_build_imageset" # kaetemi stuff, ignore this
MakeSheetIdTool = "make_sheet_id" MakeSheetIdTool = "make_sheet_id"
# BuildSheetsTool = "th_build_sheets" # kaetemi stuff, ignore this # BuildSheetsTool = "th_build_sheets" # kaetemi stuff, ignore this
# BuildSoundTool = "th_build_sound" # kaetemi stuff, ignore this # BuildSoundTool = "th_build_sound" # kaetemi stuff, ignore this
# BuildSoundTool = "build_sound" # BuildSoundTool = "build_sound"
BuildSoundbankTool = "build_soundbank" BuildSoundbankTool = "build_soundbank"
BuildSamplebankTool = "build_samplebank" BuildSamplebankTool = "build_samplebank"
BuildCoarseMeshTool = "build_coarse_mesh" BuildCoarseMeshTool = "build_coarse_mesh"
LightmapOptimizerTool = "lightmap_optimizer" LightmapOptimizerTool = "lightmap_optimizer"
BuildClodtexTool = "build_clodtex" BuildClodtexTool = "build_clodtex"
BuildShadowSkinTool = "build_shadow_skin" BuildShadowSkinTool = "build_shadow_skin"
PanoplyMakerTool = "panoply_maker" PanoplyMakerTool = "panoply_maker"
HlsBankMakerTool = "hls_bank_maker" HlsBankMakerTool = "hls_bank_maker"
LandExportTool = "land_export" LandExportTool = "land_export"
PrimExportTool = "prim_export" PrimExportTool = "prim_export"
IgElevationTool = "ig_elevation" IgElevationTool = "ig_elevation"
IgAddTool = "ig_add" IgAddTool = "ig_add"
BuildClodBankTool = "build_clod_bank" BuildClodBankTool = "build_clod_bank"
SheetsPackerTool = "sheets_packer" SheetsPackerTool = "sheets_packer"
SheetsPackerShardTool = "sheets_packer_shard" SheetsPackerShardTool = "sheets_packer_shard"
BnpMakeTool = "bnp_make" BnpMakeTool = "bnp_make"
SnpMakeTool = "snp_make" SnpMakeTool = "snp_make"
AiBuildWmapTool = "ai_build_wmap" AiBuildWmapTool = "ai_build_wmap"
TgaCutTool = "tga_cut" TgaCutTool = "tga_cut"
PatchGenTool = "patch_gen" PatchGenTool = "patch_gen"
TranslationToolsTool = "translation_tools" TranslationToolsTool = "translation_tools"
BuildWorldPackedColTool = "build_world_packed_col" BuildWorldPackedColTool = "build_world_packed_col"
R2IslandsTexturesTool = "r2_islands_textures" R2IslandsTexturesTool = "r2_islands_textures"
PatchmanServiceTool = "ryzom_patchman_service"
SevenZipTool = "7za"

@ -1,172 +1,181 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file d1_client_patch.py # \file d1_client_patch.py
# \brief Install to client patch # \brief Install to client patch
# \date 2009-02-18 16:19GMT # \date 2009-02-18 16:19GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Install to client patch # Install to client patch
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
sys.path.append("configuration") sys.path.append("configuration")
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Client Patch') parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Client Patch')
parser.add_argument('--bnponly', '-bo', action='store_true') parser.add_argument('--bnponly', '-bo', action='store_true')
args = parser.parse_args() args = parser.parse_args()
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite_local import *
from tools import * from tools import *
sys.path.append(WorkspaceDirectory) sys.path.append(WorkspaceDirectory)
from projects import * from projects import *
# Log error # Log error
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Install to client patch") printLog(log, "--- Install to client patch")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Find tools # Find tools
BnpMake = findTool(log, ToolDirectories, BnpMakeTool, ToolSuffix) BnpMake = findTool(log, ToolDirectories, BnpMakeTool, ToolSuffix)
SnpMake = findTool(log, ToolDirectories, SnpMakeTool, ToolSuffix); SnpMake = findTool(log, ToolDirectories, SnpMakeTool, ToolSuffix);
PatchGen = findTool(log, ToolDirectories, PatchGenTool, ToolSuffix) PatchGen = findTool(log, ToolDirectories, PatchGenTool, ToolSuffix)
printLog(log, "") printLog(log, "")
# Find **** HARDCODED **** WINDOWS **** tools ... TODO: fix patch_gen tool !!! # Find **** HARDCODED **** WINDOWS **** tools ... TODO: fix patch_gen tool !!!
Lzma = findFileMultiDir(log, ToolDirectories + WindowsExeDllCfgDirectories, "lzma.exe") Lzma = findFileMultiDir(log, ToolDirectories + WindowsExeDllCfgDirectories, "lzma.exe")
printLog(log, "LZMA " + Lzma) printLog(log, "LZMA " + Lzma)
XDelta = findFileMultiDir(log, ToolDirectories + WindowsExeDllCfgDirectories, "xdelta.exe") XDelta = findFileMultiDir(log, ToolDirectories + WindowsExeDllCfgDirectories, "xdelta.exe")
printLog(log, "XDELTA " + XDelta) printLog(log, "XDELTA " + XDelta)
printLog(log, "") printLog(log, "")
if BnpMake == "": if BnpMake == "":
toolLogFail(log, BnpMakeTool, ToolSuffix) toolLogFail(log, BnpMakeTool, ToolSuffix)
elif PatchGen == "" and not args.bnponly: elif PatchGen == "" and not args.bnponly:
toolLogFail(log, PatchGenTool, ToolSuffix) toolLogFail(log, PatchGenTool, ToolSuffix)
elif Lzma == "" and not args.bnponly: elif Lzma == "" and not args.bnponly:
toolLogFail(log, "LZMA", ToolSuffix) toolLogFail(log, "LZMA", ToolSuffix)
elif XDelta == "" and not args.bnponly: elif XDelta == "" and not args.bnponly:
toolLogFail(log, "XDELTA", ToolSuffix) toolLogFail(log, "XDELTA", ToolSuffix)
elif os.path.dirname(Lzma) != os.path.dirname(XDelta): elif os.path.dirname(Lzma) != os.path.dirname(XDelta):
printLog(log, "FAIL lzma.exe and xdelta.exe must be in the same directory") printLog(log, "FAIL lzma.exe and xdelta.exe must be in the same directory")
else: else:
mkPath(log, ClientPatchDirectory) mkPath(log, ClientPatchDirectory)
if not args.bnponly: if not args.bnponly:
productXml = ClientPatchDirectory + "/" + ProductName + ".xml" productXml = ClientPatchDirectory + "/" + ProductName + ".xml"
if not os.path.isfile(productXml): if not os.path.isfile(productXml):
printLog(log, ">>> Create new product <<<") printLog(log, ">>> Create new product <<<")
subprocess.call([ PatchGen, "createNewProduct", productXml ]) subprocess.call([ PatchGen, "createNewProduct", productXml ])
printLog(log, "") printLog(log, "")
printLog(log, ">>> Rewrite " + ProductName + ".xml <<<") # because we know better. printLog(log, ">>> Rewrite " + ProductName + ".xml <<<") # because we know better.
shutil.move(productXml, productXml + ".old") shutil.move(productXml, productXml + ".old")
oldCfg = open(productXml + ".old", "r") oldCfg = open(productXml + ".old", "r")
cfg = open(productXml, "w") cfg = open(productXml, "w")
inCategories = 0 inCategories = 0
for line in oldCfg: for line in oldCfg:
if not inCategories: if not inCategories:
if line.strip() == "<_Categories>": if line.strip() == "<_Categories>":
inCategories = 1 inCategories = 1
cfg.write("\t<_Categories>\n") cfg.write("\t<_Categories>\n")
for category in InstallClientData: for category in InstallClientData:
packExt = ".bnp" packExt = ".bnp"
if (category["StreamedPackages"]): if (category["StreamedPackages"]):
packExt = ".snp" packExt = ".snp"
cfg.write("\t\t<_Category>\n") cfg.write("\t\t<_Category>\n")
cfg.write("\t\t\t<_Name type=\"STRING\" value=\"" + category["Name"] + "\"/>\n") cfg.write("\t\t\t<_Name type=\"STRING\" value=\"" + category["Name"] + "\"/>\n")
if category["UnpackTo"] != None: if category["UnpackTo"] != None:
if category["UnpackTo"] != "": if category["UnpackTo"] != "":
cfg.write("\t\t\t<_UnpackTo type=\"STRING\" value=\"./" + category["UnpackTo"] + "/\"/>\n") cfg.write("\t\t\t<_UnpackTo type=\"STRING\" value=\"./" + category["UnpackTo"] + "/\"/>\n")
else: else:
cfg.write("\t\t\t<_UnpackTo type=\"STRING\" value=\"./\"/>\n") 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<_IsOptional type=\"SINT32\" value=\"" + str(category["IsOptional"]) + "\"/>\n")
cfg.write("\t\t\t<_IsIncremental type=\"SINT32\" value=\"" + str(category["IsIncremental"]) + "\"/>\n") cfg.write("\t\t\t<_IsIncremental type=\"SINT32\" value=\"" + str(category["IsIncremental"]) + "\"/>\n")
for package in category["Packages"]: for package in category["Packages"]:
if (len(package[1]) > 0): if (len(package[1]) > 0):
cfg.write("\t\t\t<_Files type=\"STRING\" value=\"" + package[1][0] + "\"/>\n") cfg.write("\t\t\t<_Files type=\"STRING\" value=\"" + package[1][0] + "\"/>\n")
else: else:
cfg.write("\t\t\t<_Files type=\"STRING\" value=\"" + package[0] + packExt + "\"/>\n") cfg.write("\t\t\t<_Files type=\"STRING\" value=\"" + package[0] + packExt + "\"/>\n")
for ref in category["Refs"]: for ref in category["Refs"]:
cfg.write("\t\t\t<_Files type=\"STRING\" value=\"" + ref + "_.ref\"/>\n") cfg.write("\t\t\t<_Files type=\"STRING\" value=\"" + ref + "_.ref\"/>\n")
cfg.write("\t\t</_Category>\n") cfg.write("\t\t</_Category>\n")
cfg.write("\t</_Categories>\n") cfg.write("\t</_Categories>\n")
else: else:
cfg.write(line) cfg.write(line)
else: else:
if line.strip() == "</_Categories>": if line.strip() == "</_Categories>":
inCategories = 0 inCategories = 0
oldCfg.close() oldCfg.close()
cfg.close() cfg.close()
os.remove(productXml + ".old") os.remove(productXml + ".old")
printLog(log, "") printLog(log, "")
printLog(log, ">>> Make bnp <<<") printLog(log, ">>> Make bnp <<<")
targetPath = ClientPatchDirectory + "/bnp" targetPath = ClientPatchDirectory + "/bnp"
mkPath(log, targetPath) tagPath = ClientPatchDirectory + "/bnp_tag"
for category in InstallClientData: mkPath(log, targetPath)
packExt = ".bnp" mkPath(log, tagPath)
if (category["StreamedPackages"]): for category in InstallClientData:
packExt = ".snp" packExt = ".bnp"
for package in category["Packages"]: if (category["StreamedPackages"]):
printLog(log, "PACKAGE " + package[0]) packExt = ".snp"
sourcePath = InstallDirectory + "/" + package[0] for package in category["Packages"]:
mkPath(log, sourcePath) printLog(log, "PACKAGE " + package[0])
targetBnp = targetPath + "/" + package[0] + packExt sourcePath = InstallDirectory + "/" + package[0]
if (len(package[1]) > 0): mkPath(log, sourcePath)
targetBnp = targetPath + "/" + package[1][0] targetBnp = targetPath + "/" + package[0] + packExt
printLog(log, "TARGET " + package[1][0]) tagBnp = tagPath + "/" + package[0] + packExt + ".tag"
needUpdateBnp = 1 if (len(package[1]) > 0):
if (len(package) > 2): targetBnp = targetPath + "/" + package[1][0]
needUpdateBnp = needUpdate(log, sourcePath + "/" + package[2], targetBnp) tagBnp = tagPath + "/" + package[1][0] + ".tag"
else: printLog(log, "TARGET " + package[1][0])
needUpdateBnp = needUpdateDirNoSubdirFile(log, sourcePath, targetBnp) needUpdateBnp = 1
if (needUpdateBnp): if (len(package) > 2):
if (category["StreamedPackages"]): needUpdateBnp = needUpdate(log, sourcePath + "/" + package[2], tagBnp)
printLog(log, "SNP " + targetBnp) else:
# cwDir = os.getcwd().replace("\\", "/") needUpdateBnp = needUpdateDirNoSubdirFile(log, sourcePath, tagBnp)
# toolDir = os.path.dirname(Lzma).replace("\\", "/") if (needUpdateBnp):
# os.chdir(toolDir) subRet = 0
subprocess.call([ SnpMake, "-p", sourcePath, targetBnp, ClientPatchDirectory + "/stream" ] + package[1][1:]) open(tagBnp, 'a').close()
# os.chdir(cwDir) os.utime(tagBnp, None)
else: if (category["StreamedPackages"]):
printLog(log, "BNP " + targetBnp) printLog(log, "SNP " + targetBnp)
subprocess.call([ BnpMake, "-p", sourcePath, "-o", targetBnp ] + package[1][1:]) # cwDir = os.getcwd().replace("\\", "/")
else: # toolDir = os.path.dirname(Lzma).replace("\\", "/")
printLog(log, "SKIP " + targetBnp) # os.chdir(toolDir)
printLog(log, "") subRet = subprocess.call([ SnpMake, "-p", sourcePath, targetBnp, ClientPatchDirectory + "/stream" ] + package[1][1:])
if not args.bnponly: # os.chdir(cwDir)
printLog(log, ">>> Update product <<<") else:
cwDir = os.getcwd().replace("\\", "/") printLog(log, "BNP " + targetBnp)
toolDir = os.path.dirname(Lzma).replace("\\", "/") subRet = subprocess.call([ BnpMake, "-p", sourcePath, "-o", targetBnp ] + package[1][1:])
os.chdir(toolDir) if (subRet != 0):
subprocess.call([ PatchGen, "updateProduct", productXml ]) os.remove(tagBnp)
os.chdir(cwDir) else:
printLog(log, "") printLog(log, "SKIP " + targetBnp)
printLog(log, "")
if not args.bnponly:
log.close() printLog(log, ">>> Update product <<<")
if os.path.isfile("d1_client_patch.log"): cwDir = os.getcwd().replace("\\", "/")
os.remove("d1_client_patch.log") toolDir = os.path.dirname(Lzma).replace("\\", "/")
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_client_patch.log") os.chdir(toolDir)
shutil.move("log.log", "d1_client_patch.log") 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")

@ -1,86 +1,86 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file d2_client_install.py # \file d2_client_install.py
# \brief Install to client install # \brief Install to client install
# \date 2009-02-18 16:19GMT # \date 2009-02-18 16:19GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Install to client install # Install to client install
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("configuration") sys.path.append("configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite_local import *
from tools import * from tools import *
sys.path.append(WorkspaceDirectory) sys.path.append(WorkspaceDirectory)
from projects import * from projects import *
# Log error # Log error
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Install to client install") printLog(log, "--- Install to client install")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
for category in InstallClientData: for category in InstallClientData:
printLog(log, "CATEGORY " + category["Name"]) printLog(log, "CATEGORY " + category["Name"])
packExt = ".bnp" packExt = ".bnp"
if (category["StreamedPackages"]): if (category["StreamedPackages"]):
packExt = ".snp" packExt = ".snp"
if (category["UnpackTo"] != None): if (category["UnpackTo"] != None):
targetPath = ClientInstallDirectory targetPath = ClientInstallDirectory
if (category["UnpackTo"] != ""): if (category["UnpackTo"] != ""):
targetPath += "/" + category["UnpackTo"] targetPath += "/" + category["UnpackTo"]
mkPath(log, targetPath) mkPath(log, targetPath)
for package in category["Packages"]: for package in category["Packages"]:
printLog(log, "PACKAGE " + package[0]) printLog(log, "PACKAGE " + package[0])
mkPath(log, InstallDirectory + "/" + package[0]) mkPath(log, InstallDirectory + "/" + package[0])
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + package[0], targetPath) copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + package[0], targetPath)
else: else:
sourcePath = ClientPatchDirectory + "/bnp" sourcePath = ClientPatchDirectory + "/bnp"
targetPath = ClientInstallDirectory + "/data" targetPath = ClientInstallDirectory + "/data"
mkPath(log, targetPath) mkPath(log, targetPath)
for package in category["Packages"]: for package in category["Packages"]:
printLog(log, "PACKAGE " + package[0]) printLog(log, "PACKAGE " + package[0])
sourceBnp = sourcePath + "/" + package[0] + packExt sourceBnp = sourcePath + "/" + package[0] + packExt
targetBnp = targetPath + "/" + package[0] + packExt targetBnp = targetPath + "/" + package[0] + packExt
if (len(package[1]) > 0): if (len(package[1]) > 0):
sourceBnp = sourcePath + "/" + package[1][0] sourceBnp = sourcePath + "/" + package[1][0]
targetBnp = targetPath + "/" + package[1][0] targetBnp = targetPath + "/" + package[1][0]
printLog(log, "TARGET " + package[1][0]) printLog(log, "TARGET " + package[1][0])
copyFileIfNeeded(log, sourceBnp, targetBnp) copyFileIfNeeded(log, sourceBnp, targetBnp)
for ref in category["Refs"]: for ref in category["Refs"]:
printLog(log, "REFERENCE " + ref) printLog(log, "REFERENCE " + ref)
sourceRef = sourcePath + "/" + ref + "_.ref" sourceRef = sourcePath + "/" + ref + "_.ref"
targetRef = targetPath + "/" + ref + "_.ref" targetRef = targetPath + "/" + ref + "_.ref"
copyFileIfNeeded(log, sourceRef, targetRef) copyFileIfNeeded(log, sourceRef, targetRef)
printLog(log, "") printLog(log, "")
log.close() log.close()
if os.path.isfile("d2_client_install.log"): if os.path.isfile("d2_client_install.log"):
os.remove("d2_client_install.log") os.remove("d2_client_install.log")
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_client_install.log") shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_client_install.log")
shutil.move("log.log", "d2_client_install.log") shutil.move("log.log", "d2_client_install.log")

@ -1,32 +1,32 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file export_build_install.py # \file export_build_install.py
# \brief Run all processes # \brief Run all processes
# \date 2009-02-18 15:28GMT # \date 2009-02-18 15:28GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Run all processes # Run all processes
# #
# NeL - MMORPG Framework <http:#dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http:#dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http:#www.gnu.org/licenses/>. # along with this program. If not, see <http:#www.gnu.org/licenses/>.
# #
import shutil, subprocess import shutil, subprocess
subprocess.call([ "python", "1_export.py" ]) subprocess.call([ "python", "1_export.py" ])
subprocess.call([ "python", "2_build.py" ]) subprocess.call([ "python", "2_build.py" ])
subprocess.call([ "python", "3_install.py" ]) subprocess.call([ "python", "3_install.py" ])

@ -1,220 +1,220 @@
#!/usr/bin/python #!/usr/bin/python
# #
# ################################################################# # #################################################################
# ## %PreGenWarning% # ## %PreGenWarning%
# ################################################################# # #################################################################
# #
# \file directories.py # \file directories.py
# \brief Directories configuration # \brief Directories configuration
# \date %PreGenDateTimeStamp% # \date %PreGenDateTimeStamp%
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# \date 2001-2005 # \date 2001-2005
# \author Nevrax # \author Nevrax
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Directories configuration for '%PreGenEcosystemName%' ecosystem. # Directories configuration for '%PreGenEcosystemName%' ecosystem.
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
# *** ECOSYSTEM AND CONTINENT NAMES *** # *** ECOSYSTEM AND CONTINENT NAMES ***
EcosystemName = "%PreGenEcosystemName%" EcosystemName = "%PreGenEcosystemName%"
EcosystemPath = "ecosystems/" + EcosystemName EcosystemPath = "ecosystems/" + EcosystemName
CommonName = EcosystemName CommonName = EcosystemName
CommonPath = EcosystemPath CommonPath = EcosystemPath
DatabaseRootName = "%PreGenDatabaseRootName%" DatabaseRootName = "%PreGenDatabaseRootName%"
DatabaseRootPath = "stuff/" + DatabaseRootName DatabaseRootPath = "stuff/" + DatabaseRootName
# *** SOURCE DIRECTORIES IN THE DATABASE *** # *** SOURCE DIRECTORIES IN THE DATABASE ***
# Shape directories # Shape directories
ShapeSourceDirectories = [ ] ShapeSourceDirectories = [ ]
ShapeSourceDirectories += [ DatabaseRootPath + "/decors/vegetations" ] ShapeSourceDirectories += [ DatabaseRootPath + "/decors/vegetations" ]
ShapeSourceDirectories += [ "landscape/ligo/" + EcosystemName + "/max" ] ShapeSourceDirectories += [ "landscape/ligo/" + EcosystemName + "/max" ]
# Maps directories # Maps directories
MapSourceDirectories = [ ] MapSourceDirectories = [ ]
MapSourceDirectories += [ DatabaseRootPath + "/decors/_textures" ] MapSourceDirectories += [ DatabaseRootPath + "/decors/_textures" ]
%PreGenMapSubdirectories%MapSourceDirectories += [ "landscape/microveget/" + EcosystemName + "" ] %PreGenMapSubdirectories%MapSourceDirectories += [ "landscape/microveget/" + EcosystemName + "" ]
MapSourceDirectories += [ "landscape/water/meshes/" + EcosystemName + "" ] MapSourceDirectories += [ "landscape/water/meshes/" + EcosystemName + "" ]
MapUncompressedSourceDirectories = [ ] MapUncompressedSourceDirectories = [ ]
# Tiles directories # Tiles directories
TilesSourceDirectories = [ ] TilesSourceDirectories = [ ]
%PreGenTileSourceDirectories% %PreGenTileSourceDirectories%
# Tiles root directory # Tiles root directory
TileRootSourceDirectory = "landscape/_texture_tiles/" + EcosystemName TileRootSourceDirectory = "landscape/_texture_tiles/" + EcosystemName
# Displace directory # Displace directory
DisplaceSourceDirectory = "landscape/_texture_tiles/" + EcosystemName + "/displace" DisplaceSourceDirectory = "landscape/_texture_tiles/" + EcosystemName + "/displace"
# Do not use, needs to be removed and fixed in processes # Do not use, needs to be removed and fixed in processes
DisplaceSourceDirectories = [ ] DisplaceSourceDirectories = [ ]
DisplaceSourceDirectories += [ DisplaceSourceDirectory ] DisplaceSourceDirectories += [ DisplaceSourceDirectory ]
# Bank directory # Bank directory
BankSourceDirectory = "landscape/_texture_tiles/" + EcosystemName BankSourceDirectory = "landscape/_texture_tiles/" + EcosystemName
# Vegetable set directories # Vegetable set directories
VegetSetSourceDirectories = [ ] VegetSetSourceDirectories = [ ]
VegetSetSourceDirectories += [ "landscape/microveget/" + EcosystemName ] VegetSetSourceDirectories += [ "landscape/microveget/" + EcosystemName ]
# Veget directories # Veget directories
VegetSourceDirectories = [ ] VegetSourceDirectories = [ ]
VegetSourceDirectories += [ "landscape/microveget/" + EcosystemName ] VegetSourceDirectories += [ "landscape/microveget/" + EcosystemName ]
# Ligo directories # Ligo directories
LigoBaseSourceDirectory = "landscape/ligo/" + EcosystemName LigoBaseSourceDirectory = "landscape/ligo/" + EcosystemName
LigoMaxSourceDirectory = LigoBaseSourceDirectory + "/max" LigoMaxSourceDirectory = LigoBaseSourceDirectory + "/max"
# Zone directories # Zone directories
ZoneSourceDirectory = [ "landscape/zones/" + EcosystemName ] # For old snowballs style landscape when not using ligo ZoneSourceDirectory = [ "landscape/zones/" + EcosystemName ] # For old snowballs style landscape when not using ligo
# Ig landscape directories # Ig landscape directories
IgLandSourceDirectory = "_invalid" IgLandSourceDirectory = "_invalid"
# Ig other directories # Ig other directories
IgOtherSourceDirectory = "_invalid" IgOtherSourceDirectory = "_invalid"
# PACS primitives directories # PACS primitives directories
PacsPrimSourceDirectories = [ ] PacsPrimSourceDirectories = [ ]
PacsPrimSourceDirectories += [ DatabaseRootPath + "/decors/vegetations" ] PacsPrimSourceDirectories += [ DatabaseRootPath + "/decors/vegetations" ]
# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg) # *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
# Ig lookup directories used by rbank # Ig lookup directories used by rbank
IgLookupDirectories = [ ] IgLookupDirectories = [ ]
# Shape lookup directories used by rbank # Shape lookup directories used by rbank
ShapeLookupDirectories = [ ] ShapeLookupDirectories = [ ]
ShapeLookupDirectories += [ EcosystemPath + "/shape_clodtex_build" ] ShapeLookupDirectories += [ EcosystemPath + "/shape_clodtex_build" ]
ShapeLookupDirectories += [ EcosystemPath + "/shape_with_coarse_mesh" ] ShapeLookupDirectories += [ EcosystemPath + "/shape_with_coarse_mesh" ]
# Map lookup directories not yet used # Map lookup directories not yet used
MapLookupDirectories = [ ] MapLookupDirectories = [ ]
MapLookupDirectories += [ EcosystemPath + "/map_export" ] MapLookupDirectories += [ EcosystemPath + "/map_export" ]
MapLookupDirectories += [ EcosystemPath + "/map_uncompressed" ] MapLookupDirectories += [ EcosystemPath + "/map_uncompressed" ]
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE *** # *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
# Map directories # Map directories
MapExportDirectory = CommonPath + "/map_export" MapExportDirectory = CommonPath + "/map_export"
MapUncompressedExportDirectory = CommonPath + "/map_uncompressed" MapUncompressedExportDirectory = CommonPath + "/map_uncompressed"
# Shape directories # Shape directories
ShapeTagExportDirectory = CommonPath + "/shape_tag" ShapeTagExportDirectory = CommonPath + "/shape_tag"
ShapeNotOptimizedExportDirectory = CommonPath + "/shape_not_optimized" ShapeNotOptimizedExportDirectory = CommonPath + "/shape_not_optimized"
ShapeWithCoarseMeshExportDirectory = CommonPath + "/shape_with_coarse_mesh" ShapeWithCoarseMeshExportDirectory = CommonPath + "/shape_with_coarse_mesh"
ShapeLightmapNotOptimizedExportDirectory = CommonPath + "/shape_lightmap_not_optimized" ShapeLightmapNotOptimizedExportDirectory = CommonPath + "/shape_lightmap_not_optimized"
ShapeAnimExportDirectory = CommonPath + "/shape_anim" ShapeAnimExportDirectory = CommonPath + "/shape_anim"
# Smallbank directories # Smallbank directories
SmallbankExportDirectory = CommonPath + "/smallbank" SmallbankExportDirectory = CommonPath + "/smallbank"
# Tiles directories # Tiles directories
TilesExportDirectory = CommonPath + "/tiles" TilesExportDirectory = CommonPath + "/tiles"
# Tiles directories # Tiles directories
DisplaceExportDirectory = CommonPath + "/diplace" DisplaceExportDirectory = CommonPath + "/diplace"
# Veget directories # Veget directories
VegetExportDirectory = CommonPath + "/veget" VegetExportDirectory = CommonPath + "/veget"
VegetTagExportDirectory = CommonPath + "/veget_tag" VegetTagExportDirectory = CommonPath + "/veget_tag"
# Veget Set directories # Veget Set directories
VegetSetExportDirectory = CommonPath + "/veget_set" VegetSetExportDirectory = CommonPath + "/veget_set"
# Ligo directories # Ligo directories
LigoEcosystemExportDirectory = CommonPath + "/ligo_es" LigoEcosystemExportDirectory = CommonPath + "/ligo_es"
LigoEcosystemIgExportDirectory = LigoEcosystemExportDirectory + "/igs" LigoEcosystemIgExportDirectory = LigoEcosystemExportDirectory + "/igs"
LigoEcosystemZoneExportDirectory = LigoEcosystemExportDirectory + "/zones" LigoEcosystemZoneExportDirectory = LigoEcosystemExportDirectory + "/zones"
LigoEcosystemZoneLigoExportDirectory = LigoEcosystemExportDirectory + "/zoneligos" LigoEcosystemZoneLigoExportDirectory = LigoEcosystemExportDirectory + "/zoneligos"
LigoEcosystemCmbExportDirectory = LigoEcosystemExportDirectory + "/cmb" LigoEcosystemCmbExportDirectory = LigoEcosystemExportDirectory + "/cmb"
LigoEcosystemTagExportDirectory = CommonPath + "/ligo_es_tag" LigoEcosystemTagExportDirectory = CommonPath + "/ligo_es_tag"
# Zone directories # Zone directories
ZoneExportDirectory = CommonPath + "/zone" ZoneExportDirectory = CommonPath + "/zone"
# PACS primitives directories # PACS primitives directories
PacsPrimExportDirectory = CommonPath + "/pacs_prim" PacsPrimExportDirectory = CommonPath + "/pacs_prim"
PacsPrimTagExportDirectory = CommonPath + "/pacs_prim_tag" PacsPrimTagExportDirectory = CommonPath + "/pacs_prim_tag"
# *** BUILD DIRECTORIES FOR THE BUILD PIPELINE *** # *** BUILD DIRECTORIES FOR THE BUILD PIPELINE ***
# Map directories # Map directories
MapBuildDirectory = CommonPath + "/map" MapBuildDirectory = CommonPath + "/map"
MapPanoplyBuildDirectory = CommonPath + "/map_panoply" MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info" MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank" MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache" MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
MapTagBuildDirectory = CommonPath + "/map_tag" MapTagBuildDirectory = CommonPath + "/map_tag"
# Shape directories # Shape directories
ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build" ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
ShapeWithCoarseMeshBuildDirectory = CommonPath + "/shape_with_coarse_mesh_builded" ShapeWithCoarseMeshBuildDirectory = CommonPath + "/shape_with_coarse_mesh_builded"
ShapeLightmapBuildDirectory = CommonPath + "/shape_lightmap" ShapeLightmapBuildDirectory = CommonPath + "/shape_lightmap"
ShapeLightmap16BitsBuildDirectory = CommonPath + "/shape_lightmap_16_bits" ShapeLightmap16BitsBuildDirectory = CommonPath + "/shape_lightmap_16_bits"
# Farbank directories # Farbank directories
FarbankBuildDirectory = CommonPath + "/farbank" FarbankBuildDirectory = CommonPath + "/farbank"
# Ig directories ************** TODO CONFIRM IN IG BUILD PROCESS ************ FIX RBANK IF NEEDED *********** # Ig directories ************** TODO CONFIRM IN IG BUILD PROCESS ************ FIX RBANK IF NEEDED ***********
IgLandBuildDirectory = "_invalid" IgLandBuildDirectory = "_invalid"
IgOtherBuildDirectory = "_invalid" IgOtherBuildDirectory = "_invalid"
# Rbank directories # Rbank directories
RbankOutputBuildDirectory = "_invalid" RbankOutputBuildDirectory = "_invalid"
# Ligo directories # Ligo directories
# *** INSTALL DIRECTORIES IN THE CLIENT DATA *** # *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
# Map directory # Map directory
MapInstallDirectory = CommonName + "_maps" MapInstallDirectory = CommonName + "_maps"
BitmapInstallDirectory = MapInstallDirectory BitmapInstallDirectory = MapInstallDirectory
# Shape directory # Shape directory
ShapeInstallDirectory = CommonName + "_shapes" ShapeInstallDirectory = CommonName + "_shapes"
# Lightmap directory # Lightmap directory
LightmapInstallDirectory = CommonName + "_lightmaps" LightmapInstallDirectory = CommonName + "_lightmaps"
# Tile directory # Tile directory
TilesInstallDirectory = CommonName + "_tiles" TilesInstallDirectory = CommonName + "_tiles"
# Displace directory # Displace directory
DisplaceInstallDirectory = CommonName + "_displaces" DisplaceInstallDirectory = CommonName + "_displaces"
# Bank directory # Bank directory
BankInstallDirectory = CommonName + "_bank" BankInstallDirectory = CommonName + "_bank"
# Vegetable set directory # Vegetable set directory
VegetSetInstallDirectory = CommonName + "_vegetable_sets" VegetSetInstallDirectory = CommonName + "_vegetable_sets"
# Vegetable shape directory # Vegetable shape directory
VegetInstallDirectory = CommonName + "_vegetables" VegetInstallDirectory = CommonName + "_vegetables"
# PACS primitives directories # PACS primitives directories
PacsPrimInstallDirectory = CommonName + "_pacs_prim" PacsPrimInstallDirectory = CommonName + "_pacs_prim"

@ -1,122 +1,122 @@
#!/usr/bin/python #!/usr/bin/python
# #
# ################################################################# # #################################################################
# ## %PreGenWarning% # ## %PreGenWarning%
# ################################################################# # #################################################################
# #
# \file config.py # \file config.py
# \brief Process configuration # \brief Process configuration
# \date %PreGenDateTimeStamp% # \date %PreGenDateTimeStamp%
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Process configuration for '%PreGenEcosystemName%' ecosystem. # Process configuration for '%PreGenEcosystemName%' ecosystem.
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
# *** PROCESS CONFIGURATION *** # *** PROCESS CONFIGURATION ***
# *** PROCESS CONFIG *** # *** PROCESS CONFIG ***
ProcessToComplete = [ ] ProcessToComplete = [ ]
ProcessToComplete += [ "shape" ] ProcessToComplete += [ "shape" ]
ProcessToComplete += [ "map" ] ProcessToComplete += [ "map" ]
ProcessToComplete += [ "smallbank" ] ProcessToComplete += [ "smallbank" ]
ProcessToComplete += [ "farbank" ] ProcessToComplete += [ "farbank" ]
ProcessToComplete += [ "tiles" ] ProcessToComplete += [ "tiles" ]
ProcessToComplete += [ "displace" ] ProcessToComplete += [ "displace" ]
ProcessToComplete += [ "veget" ] ProcessToComplete += [ "veget" ]
ProcessToComplete += [ "vegetset" ] ProcessToComplete += [ "vegetset" ]
ProcessToComplete += [ "ligo" ] ProcessToComplete += [ "ligo" ]
ProcessToComplete += [ "pacs_prim" ] ProcessToComplete += [ "pacs_prim" ]
# *** ECOSYSTEM AND CONTINENT NAMES *** # *** ECOSYSTEM AND CONTINENT NAMES ***
EcosystemName = "%PreGenEcosystemName%" EcosystemName = "%PreGenEcosystemName%"
EcosystemPath = "ecosystems/" + EcosystemName EcosystemPath = "ecosystems/" + EcosystemName
CommonName = EcosystemName CommonName = EcosystemName
CommonPath = EcosystemPath CommonPath = EcosystemPath
# *** MAP EXPORT OPTIONS *** # *** MAP EXPORT OPTIONS ***
PanoplyFileList = [ ] PanoplyFileList = [ ]
HlsBankFileName = "" HlsBankFileName = ""
# *** SHAPE EXPORT OPTIONS *** # *** SHAPE EXPORT OPTIONS ***
# Compute lightmaps ? # Compute lightmaps ?
ShapeExportOptExportLighting = "%PreGenShapeExportOptExportLighting%" ShapeExportOptExportLighting = "%PreGenShapeExportOptExportLighting%"
# Cast shadow in lightmap ? # Cast shadow in lightmap ?
ShapeExportOptShadow = "%PreGenShapeExportOptShadow%" ShapeExportOptShadow = "%PreGenShapeExportOptShadow%"
# Lighting limits. 0 : normal, 1 : soft shadows # Lighting limits. 0 : normal, 1 : soft shadows
ShapeExportOptLightingLimit = %PreGenShapeExportOptLightingLimit% ShapeExportOptLightingLimit = %PreGenShapeExportOptLightingLimit%
# Lightmap lumel size # Lightmap lumel size
ShapeExportOptLumelSize = "%PreGenShapeExportOptLumelSize%" ShapeExportOptLumelSize = "%PreGenShapeExportOptLumelSize%"
# Oversampling value. Can be 1, 2, 4 or 8 # Oversampling value. Can be 1, 2, 4 or 8
ShapeExportOptOversampling = %PreGenShapeExportOptOversampling% ShapeExportOptOversampling = %PreGenShapeExportOptOversampling%
# Does the lightmap must be generated in 8 bits format ? # Does the lightmap must be generated in 8 bits format ?
ShapeExportOpt8BitsLightmap = "%PreGenShapeExportOpt8BitsLightmap%" ShapeExportOpt8BitsLightmap = "%PreGenShapeExportOpt8BitsLightmap%"
# Does the lightmaps export must generate logs ? # Does the lightmaps export must generate logs ?
ShapeExportOptLightmapLog = "%PreGenShapeExportOptLightmapLog%" ShapeExportOptLightmapLog = "%PreGenShapeExportOptLightmapLog%"
# Coarse mesh texture mul size # Coarse mesh texture mul size
TextureMulSizeValue = "%PreGenTextureMulSizeValue%" TextureMulSizeValue = "%PreGenTextureMulSizeValue%"
ClodConfigFile = "" ClodConfigFile = ""
# *** COARSE MESH TEXTURE NAME *** # *** COARSE MESH TEXTURE NAME ***
CoarseMeshTextureNames = [ ] CoarseMeshTextureNames = [ ]
%PreGenCoarseMeshTextureNames% %PreGenCoarseMeshTextureNames%
# *** POSTFIX USED BY THE MULTIPLE TILES SYSTEM *** # *** POSTFIX USED BY THE MULTIPLE TILES SYSTEM ***
MultipleTilesPostfix = [ ] MultipleTilesPostfix = [ ]
%PreGenMultipleTilesPostfix% %PreGenMultipleTilesPostfix%
# *** BANK EXPORT OPTIONS *** # *** BANK EXPORT OPTIONS ***
# Name of the tilebank to use # Name of the tilebank to use
BankTileBankName = EcosystemName BankTileBankName = EcosystemName
# *** RBANK EXPORT OPTIONS *** # *** RBANK EXPORT OPTIONS ***
# Output names # Output names
RbankRbankName = "_invalid" RbankRbankName = "_invalid"
# *** LIGO OPTIONS *** # *** LIGO OPTIONS ***
LigoExportLand = "" LigoExportLand = ""
LigoExportOnePass = 0 LigoExportOnePass = 0
# *** MAPS OPTIONS *** # *** MAPS OPTIONS ***
ReduceBitmapFactor = 0 ReduceBitmapFactor = 0
# list all panoply files # list all panoply files
MapPanoplyFileList = None MapPanoplyFileList = None
# name of the .hlsbank to build. # name of the .hlsbank to build.
MapHlsBankFileName = None MapHlsBankFileName = None
# *** SHAPE BUILD OPTIONS * # *** SHAPE BUILD OPTIONS *
BuildShadowSkinEnabled = False BuildShadowSkinEnabled = False
ClodConfigFile = "" ClodConfigFile = ""
# *** PACS_PRIM OPTIONS *** # *** PACS_PRIM OPTIONS ***
WantLandscapeColPrimPacsList = True WantLandscapeColPrimPacsList = True

@ -1,65 +1,65 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 0_setup.py # \file 0_setup.py
# \brief Run all setup processes # \brief Run all setup processes
# \date 2009-02-18 15:28GMT # \date 2009-02-18 15:28GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Run all setup processes # Run all setup processes
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../configuration") sys.path.append("../configuration")
if os.path.isfile("generate_all.log"): if os.path.isfile("generate_all.log"):
os.remove("generate_all.log") os.remove("generate_all.log")
log = open("generate_all.log", "w") log = open("generate_all.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from tools import * from tools import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Generate all") printLog(log, "--- Generate all")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
try: try:
subprocess.call([ "python", "generate_simple_max_exporters.py" ]) subprocess.call([ "python", "generate_simple_max_exporters.py" ])
except Exception, e: except Exception, e:
printLog(log, "<" + processName + "> " + str(e)) printLog(log, "<" + processName + "> " + str(e))
printLog(log, "") printLog(log, "")
try: try:
subprocess.call([ "python", "generate_tagged_max_exporters.py" ]) subprocess.call([ "python", "generate_tagged_max_exporters.py" ])
except Exception, e: except Exception, e:
printLog(log, "<" + processName + "> " + str(e)) printLog(log, "<" + processName + "> " + str(e))
printLog(log, "") printLog(log, "")
try: try:
subprocess.call([ "python", "generate_ecosystem_projects.py" ]) subprocess.call([ "python", "generate_ecosystem_projects.py" ])
except Exception, e: except Exception, e:
printLog(log, "<" + processName + "> " + str(e)) printLog(log, "<" + processName + "> " + str(e))
printLog(log, "") printLog(log, "")
log.close() log.close()

@ -1,278 +1,278 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file generate_ecosystem_projects.py # \file generate_ecosystem_projects.py
# \brief Run all setup processes # \brief Run all setup processes
# \date 2010-09-02 10:36GMT # \date 2010-09-02 10:36GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Generate ecosystem projects # Generate ecosystem projects
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../configuration") sys.path.append("../configuration")
if os.path.isfile("generate_ecosystem_projects.log"): if os.path.isfile("generate_ecosystem_projects.log"):
os.remove("generate_ecosystem_projects.log") os.remove("generate_ecosystem_projects.log")
log = open("generate_ecosystem_projects.log", "w") log = open("generate_ecosystem_projects.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from tools import * from tools import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Generate ecosystem projects") printLog(log, "--- Generate ecosystem projects")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
templateDir = os.getcwd().replace("\\", "/") + "/ecosystem_project_template" templateDir = os.getcwd().replace("\\", "/") + "/ecosystem_project_template"
mkPath(log, templateDir) mkPath(log, templateDir)
os.chdir("..") os.chdir("..")
# Scroll down to add an ecosystem. # Scroll down to add an ecosystem.
DefaultShapeExportOptExportLighting = "true" DefaultShapeExportOptExportLighting = "true"
DefaultShapeExportOptShadow = "true" DefaultShapeExportOptShadow = "true"
DefaultShapeExportOptLightingLimit = "1" DefaultShapeExportOptLightingLimit = "1"
DefaultShapeExportOptLumelSize = "0.25" DefaultShapeExportOptLumelSize = "0.25"
DefaultShapeExportOptOversampling = "1" DefaultShapeExportOptOversampling = "1"
DefaultShapeExportOpt8BitsLightmap = "true" DefaultShapeExportOpt8BitsLightmap = "true"
DefaultShapeExportOptLightmapLog = "true" DefaultShapeExportOptLightmapLog = "true"
DefaultTextureMulSizeValue = "1.5" DefaultTextureMulSizeValue = "1.5"
DefaultSeasonSuffixes = [ "sp" ] + [ "su" ] + [ "au" ] + [ "wi" ] DefaultSeasonSuffixes = [ "sp" ] + [ "su" ] + [ "au" ] + [ "wi" ]
DefaultMapSubdirectories = [ ] DefaultMapSubdirectories = [ ]
DefaultTileDirectories = [ ] DefaultTileDirectories = [ ]
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
ShapeExportOptShadow = DefaultShapeExportOptShadow ShapeExportOptShadow = DefaultShapeExportOptShadow
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
ShapeExportOptOversampling = DefaultShapeExportOptOversampling ShapeExportOptOversampling = DefaultShapeExportOptOversampling
ShapeExportOpt8BitsLightmap = DefaultShapeExportOpt8BitsLightmap ShapeExportOpt8BitsLightmap = DefaultShapeExportOpt8BitsLightmap
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
TextureMulSizeValue = DefaultTextureMulSizeValue TextureMulSizeValue = DefaultTextureMulSizeValue
SeasonSuffixes = DefaultSeasonSuffixes SeasonSuffixes = DefaultSeasonSuffixes
MapSubdirectories = DefaultMapSubdirectories MapSubdirectories = DefaultMapSubdirectories
TileDirectories = DefaultTileDirectories TileDirectories = DefaultTileDirectories
PreGenDateTimeStamp = None PreGenDateTimeStamp = None
PreGenEcosystemName = None PreGenEcosystemName = None
PreGenDatabaseRootName = None PreGenDatabaseRootName = None
PreGenCoarseMeshTextureNames = None PreGenCoarseMeshTextureNames = None
PreGenMultipleTilesPostfix = None PreGenMultipleTilesPostfix = None
PreGenMapSubdirectories = None PreGenMapSubdirectories = None
PreGenTileSourceDirectories = None PreGenTileSourceDirectories = None
def transformLine(line): def transformLine(line):
newline = line.replace("%PreGenWarning%", "WARNING : this is a generated file, don't change it !") newline = line.replace("%PreGenWarning%", "WARNING : this is a generated file, don't change it !")
newline = newline.replace("%PreGenDateTimeStamp%", PreGenDateTimeStamp) newline = newline.replace("%PreGenDateTimeStamp%", PreGenDateTimeStamp)
newline = newline.replace("%PreGenEcosystemName%", PreGenEcosystemName) newline = newline.replace("%PreGenEcosystemName%", PreGenEcosystemName)
newline = newline.replace("%PreGenDatabaseRootName%", PreGenDatabaseRootName) newline = newline.replace("%PreGenDatabaseRootName%", PreGenDatabaseRootName)
newline = newline.replace("%PreGenCoarseMeshTextureNames%", PreGenCoarseMeshTextureNames) newline = newline.replace("%PreGenCoarseMeshTextureNames%", PreGenCoarseMeshTextureNames)
newline = newline.replace("%PreGenMultipleTilesPostfix%", PreGenMultipleTilesPostfix) newline = newline.replace("%PreGenMultipleTilesPostfix%", PreGenMultipleTilesPostfix)
newline = newline.replace("%PreGenMapSubdirectories%", PreGenMapSubdirectories) newline = newline.replace("%PreGenMapSubdirectories%", PreGenMapSubdirectories)
newline = newline.replace("%PreGenTileSourceDirectories%", PreGenTileSourceDirectories) newline = newline.replace("%PreGenTileSourceDirectories%", PreGenTileSourceDirectories)
newline = newline.replace("%PreGenShapeExportOptExportLighting%", ShapeExportOptExportLighting) newline = newline.replace("%PreGenShapeExportOptExportLighting%", ShapeExportOptExportLighting)
newline = newline.replace("%PreGenShapeExportOptShadow%", ShapeExportOptShadow) newline = newline.replace("%PreGenShapeExportOptShadow%", ShapeExportOptShadow)
newline = newline.replace("%PreGenShapeExportOptLightingLimit%", ShapeExportOptLightingLimit) newline = newline.replace("%PreGenShapeExportOptLightingLimit%", ShapeExportOptLightingLimit)
newline = newline.replace("%PreGenShapeExportOptLumelSize%", ShapeExportOptLumelSize) newline = newline.replace("%PreGenShapeExportOptLumelSize%", ShapeExportOptLumelSize)
newline = newline.replace("%PreGenShapeExportOptOversampling%", ShapeExportOptOversampling) newline = newline.replace("%PreGenShapeExportOptOversampling%", ShapeExportOptOversampling)
newline = newline.replace("%PreGenShapeExportOpt8BitsLightmap%", ShapeExportOpt8BitsLightmap) newline = newline.replace("%PreGenShapeExportOpt8BitsLightmap%", ShapeExportOpt8BitsLightmap)
newline = newline.replace("%PreGenShapeExportOptLightmapLog%", ShapeExportOptLightmapLog) newline = newline.replace("%PreGenShapeExportOptLightmapLog%", ShapeExportOptLightmapLog)
newline = newline.replace("%PreGenTextureMulSizeValue%", TextureMulSizeValue) newline = newline.replace("%PreGenTextureMulSizeValue%", TextureMulSizeValue)
newline = newline.replace("%PreGenTileSourceDirectories%", PreGenTileSourceDirectories) newline = newline.replace("%PreGenTileSourceDirectories%", PreGenTileSourceDirectories)
return newline return newline
def generateFile(sourceFile, destFile): def generateFile(sourceFile, destFile):
srcf = open(sourceFile, "r") srcf = open(sourceFile, "r")
dstf = open(destFile, "w") dstf = open(destFile, "w")
printLog(log, "WRITE " + destFile) printLog(log, "WRITE " + destFile)
for line in srcf: for line in srcf:
dstf.write(transformLine(line)) dstf.write(transformLine(line))
dstf.close() dstf.close()
srcf.close() srcf.close()
def generateEcosystem(ecosystemName, databaseRootName): def generateEcosystem(ecosystemName, databaseRootName):
global PreGenEcosystemName global PreGenEcosystemName
PreGenEcosystemName = ecosystemName PreGenEcosystemName = ecosystemName
global PreGenDatabaseRootName global PreGenDatabaseRootName
PreGenDatabaseRootName = databaseRootName PreGenDatabaseRootName = databaseRootName
global PreGenDateTimeStamp global PreGenDateTimeStamp
PreGenDateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) PreGenDateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
global PreGenMultipleTilesPostfix global PreGenMultipleTilesPostfix
PreGenMultipleTilesPostfix = "" PreGenMultipleTilesPostfix = ""
global PreGenCoarseMeshTextureNames global PreGenCoarseMeshTextureNames
PreGenCoarseMeshTextureNames = "" PreGenCoarseMeshTextureNames = ""
global PreGenTileSourceDirectories global PreGenTileSourceDirectories
PreGenTileSourceDirectories = "" PreGenTileSourceDirectories = ""
for suffix in SeasonSuffixes: for suffix in SeasonSuffixes:
PreGenMultipleTilesPostfix += "MultipleTilesPostfix += [ \"_" + suffix + "\" ]\n" PreGenMultipleTilesPostfix += "MultipleTilesPostfix += [ \"_" + suffix + "\" ]\n"
PreGenCoarseMeshTextureNames += "CoarseMeshTextureNames += [ \"nel_coarse_mesh_\" + EcosystemName + \"_" + suffix + "\" ]\n" PreGenCoarseMeshTextureNames += "CoarseMeshTextureNames += [ \"nel_coarse_mesh_\" + EcosystemName + \"_" + suffix + "\" ]\n"
for tiledir in TileDirectories: for tiledir in TileDirectories:
PreGenTileSourceDirectories += "TilesSourceDirectories += [ \"landscape/_texture_tiles/\" + EcosystemName + \"_" + suffix + "/" + tiledir + "\" ]\n" PreGenTileSourceDirectories += "TilesSourceDirectories += [ \"landscape/_texture_tiles/\" + EcosystemName + \"_" + suffix + "/" + tiledir + "\" ]\n"
global PreGenMapSubdirectories global PreGenMapSubdirectories
PreGenMapSubdirectories = "" PreGenMapSubdirectories = ""
for subdir in MapSubdirectories: for subdir in MapSubdirectories:
PreGenMapSubdirectories += "MapSourceDirectories += [ DatabaseRootPath + \"/decors/_textures/" + subdir + "\" ]\n" PreGenMapSubdirectories += "MapSourceDirectories += [ DatabaseRootPath + \"/decors/_textures/" + subdir + "\" ]\n"
destDir = WorkspaceDirectory + "/ecosystems/" + ecosystemName destDir = WorkspaceDirectory + "/ecosystems/" + ecosystemName
mkPath(log, destDir) mkPath(log, destDir)
generateFile(templateDir + "/process.py", destDir + "/process.py") generateFile(templateDir + "/process.py", destDir + "/process.py")
generateFile(templateDir + "/directories.py", destDir + "/directories.py") generateFile(templateDir + "/directories.py", destDir + "/directories.py")
return return
# Add new ecosystems below this line. # Add new ecosystems below this line.
# DESERT # DESERT
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
ShapeExportOptShadow = DefaultShapeExportOptShadow ShapeExportOptShadow = DefaultShapeExportOptShadow
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
ShapeExportOptOversampling = DefaultShapeExportOptOversampling ShapeExportOptOversampling = DefaultShapeExportOptOversampling
ShapeExportOpt8BitsLightmap = DefaultShapeExportOpt8BitsLightmap ShapeExportOpt8BitsLightmap = DefaultShapeExportOpt8BitsLightmap
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
TextureMulSizeValue = DefaultTextureMulSizeValue TextureMulSizeValue = DefaultTextureMulSizeValue
SeasonSuffixes = DefaultSeasonSuffixes SeasonSuffixes = DefaultSeasonSuffixes
MapSubdirectories = [ ] MapSubdirectories = [ ]
MapSubdirectories += [ "vegetations" ] MapSubdirectories += [ "vegetations" ]
TileDirectories = [ ] TileDirectories = [ ]
TileDirectories += [ "1.5-marecage_profond" ] TileDirectories += [ "1.5-marecage_profond" ]
TileDirectories += [ "1-marecages" ] TileDirectories += [ "1-marecages" ]
TileDirectories += [ "2-citees" ] TileDirectories += [ "2-citees" ]
TileDirectories += [ "3-fond_canyon" ] TileDirectories += [ "3-fond_canyon" ]
TileDirectories += [ "4.2-boisbandeclair" ] TileDirectories += [ "4.2-boisbandeclair" ]
TileDirectories += [ "4.5-desert2boisbande" ] TileDirectories += [ "4.5-desert2boisbande" ]
TileDirectories += [ "4-falaise_bois_bande" ] TileDirectories += [ "4-falaise_bois_bande" ]
TileDirectories += [ "5-falaise_normales" ] TileDirectories += [ "5-falaise_normales" ]
TileDirectories += [ "6.5-desertalternatif" ] TileDirectories += [ "6.5-desertalternatif" ]
TileDirectories += [ "6-desert" ] TileDirectories += [ "6-desert" ]
TileDirectories += [ "7-routes" ] TileDirectories += [ "7-routes" ]
TileDirectories += [ "8-foretbrule" ] TileDirectories += [ "8-foretbrule" ]
generateEcosystem("desert", "fyros") generateEcosystem("desert", "fyros")
# JUNGLE # JUNGLE
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
ShapeExportOptShadow = DefaultShapeExportOptShadow ShapeExportOptShadow = DefaultShapeExportOptShadow
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
ShapeExportOptOversampling = DefaultShapeExportOptOversampling ShapeExportOptOversampling = DefaultShapeExportOptOversampling
ShapeExportOpt8BitsLightmap = "false" ShapeExportOpt8BitsLightmap = "false"
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
TextureMulSizeValue = DefaultTextureMulSizeValue TextureMulSizeValue = DefaultTextureMulSizeValue
SeasonSuffixes = DefaultSeasonSuffixes SeasonSuffixes = DefaultSeasonSuffixes
MapSubdirectories = [ ] MapSubdirectories = [ ]
MapSubdirectories += [ "vegetations" ] MapSubdirectories += [ "vegetations" ]
TileDirectories = [ ] TileDirectories = [ ]
TileDirectories += [ "10-crevassejungle" ] TileDirectories += [ "10-crevassejungle" ]
TileDirectories += [ "11-paroisjungle" ] TileDirectories += [ "11-paroisjungle" ]
TileDirectories += [ "12-vasejungle" ] TileDirectories += [ "12-vasejungle" ]
TileDirectories += [ "1-junglemousse" ] TileDirectories += [ "1-junglemousse" ]
TileDirectories += [ "2-junglefeuilles" ] TileDirectories += [ "2-junglefeuilles" ]
TileDirectories += [ "3-jungleherbesseche" ] TileDirectories += [ "3-jungleherbesseche" ]
TileDirectories += [ "4-jungleherbevieille" ] TileDirectories += [ "4-jungleherbevieille" ]
TileDirectories += [ "5-jungleterreaux" ] TileDirectories += [ "5-jungleterreaux" ]
TileDirectories += [ "6-junglegoo" ] TileDirectories += [ "6-junglegoo" ]
TileDirectories += [ "7-sciurejungle" ] TileDirectories += [ "7-sciurejungle" ]
TileDirectories += [ "8-terrejungle" ] TileDirectories += [ "8-terrejungle" ]
TileDirectories += [ "9-falaisejungle" ] TileDirectories += [ "9-falaisejungle" ]
TileDirectories += [ "Transitions" ] TileDirectories += [ "Transitions" ]
generateEcosystem("jungle", "jungle") generateEcosystem("jungle", "jungle")
# PRIMES RACINES # PRIMES RACINES
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
ShapeExportOptShadow = DefaultShapeExportOptShadow ShapeExportOptShadow = DefaultShapeExportOptShadow
ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit ShapeExportOptLightingLimit = DefaultShapeExportOptLightingLimit
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
ShapeExportOptOversampling = DefaultShapeExportOptOversampling ShapeExportOptOversampling = DefaultShapeExportOptOversampling
ShapeExportOpt8BitsLightmap = "false" ShapeExportOpt8BitsLightmap = "false"
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
TextureMulSizeValue = DefaultTextureMulSizeValue TextureMulSizeValue = DefaultTextureMulSizeValue
SeasonSuffixes = DefaultSeasonSuffixes SeasonSuffixes = DefaultSeasonSuffixes
MapSubdirectories = [ ] MapSubdirectories = [ ]
MapSubdirectories += [ "vegetations" ] MapSubdirectories += [ "vegetations" ]
MapSubdirectories += [ "batiments" ] MapSubdirectories += [ "batiments" ]
TileDirectories = [ ] TileDirectories = [ ]
TileDirectories += [ "PR-creux" ] TileDirectories += [ "PR-creux" ]
TileDirectories += [ "PR-dome-moussu" ] TileDirectories += [ "PR-dome-moussu" ]
TileDirectories += [ "PR-kitiniere" ] TileDirectories += [ "PR-kitiniere" ]
TileDirectories += [ "PR-mousse-licken" ] TileDirectories += [ "PR-mousse-licken" ]
TileDirectories += [ "PR-mousse-spongieus" ] TileDirectories += [ "PR-mousse-spongieus" ]
TileDirectories += [ "PR-parois" ] TileDirectories += [ "PR-parois" ]
TileDirectories += [ "PR-sol-mousse" ] TileDirectories += [ "PR-sol-mousse" ]
TileDirectories += [ "PR-souche" ] TileDirectories += [ "PR-souche" ]
TileDirectories += [ "PR-stalagmite" ] TileDirectories += [ "PR-stalagmite" ]
TileDirectories += [ "PR-terre" ] TileDirectories += [ "PR-terre" ]
TileDirectories += [ "aditif" ] TileDirectories += [ "aditif" ]
generateEcosystem("primes_racines", "primes_racines") generateEcosystem("primes_racines", "primes_racines")
# LACUSTRE # LACUSTRE
ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting ShapeExportOptExportLighting = DefaultShapeExportOptExportLighting
ShapeExportOptShadow = DefaultShapeExportOptShadow ShapeExportOptShadow = DefaultShapeExportOptShadow
ShapeExportOptLightingLimit = "0" ShapeExportOptLightingLimit = "0"
ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize ShapeExportOptLumelSize = DefaultShapeExportOptLumelSize
ShapeExportOptOversampling = "8" ShapeExportOptOversampling = "8"
ShapeExportOpt8BitsLightmap = "false" ShapeExportOpt8BitsLightmap = "false"
ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog ShapeExportOptLightmapLog = DefaultShapeExportOptLightmapLog
TextureMulSizeValue = DefaultTextureMulSizeValue TextureMulSizeValue = DefaultTextureMulSizeValue
SeasonSuffixes = DefaultSeasonSuffixes SeasonSuffixes = DefaultSeasonSuffixes
MapSubdirectories = [ ] MapSubdirectories = [ ]
MapSubdirectories += [ "vegetations" ] MapSubdirectories += [ "vegetations" ]
TileDirectories = [ ] TileDirectories = [ ]
TileDirectories += [ "1a-sable-marin" ] TileDirectories += [ "1a-sable-marin" ]
TileDirectories += [ "1-plages" ] TileDirectories += [ "1-plages" ]
TileDirectories += [ "2-iles" ] TileDirectories += [ "2-iles" ]
TileDirectories += [ "2-ilesa" ] TileDirectories += [ "2-ilesa" ]
TileDirectories += [ "2-iles-marines" ] TileDirectories += [ "2-iles-marines" ]
TileDirectories += [ "3-fondmarin2plage" ] TileDirectories += [ "3-fondmarin2plage" ]
TileDirectories += [ "4-marecages" ] TileDirectories += [ "4-marecages" ]
TileDirectories += [ "5-marecages" ] TileDirectories += [ "5-marecages" ]
TileDirectories += [ "5-parois-marine" ] TileDirectories += [ "5-parois-marine" ]
TileDirectories += [ "6-fond_marin" ] TileDirectories += [ "6-fond_marin" ]
TileDirectories += [ "7-bassesiles" ] TileDirectories += [ "7-bassesiles" ]
TileDirectories += [ "7-mousseter" ] TileDirectories += [ "7-mousseter" ]
TileDirectories += [ "7-racines" ] TileDirectories += [ "7-racines" ]
TileDirectories += [ "8-mousse_marine" ] TileDirectories += [ "8-mousse_marine" ]
TileDirectories += [ "constructible" ] TileDirectories += [ "constructible" ]
generateEcosystem("lacustre", "tryker") generateEcosystem("lacustre", "tryker")
printLog(log, "") printLog(log, "")
log.close() log.close()

@ -1,100 +1,100 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 0_setup.py # \file 0_setup.py
# \brief Run all setup processes # \brief Run all setup processes
# \date 2009-02-18 15:28GMT # \date 2009-02-18 15:28GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Run all setup processes # Run all setup processes
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../configuration") sys.path.append("../configuration")
if os.path.isfile("generate_simple_max_exporters.log"): if os.path.isfile("generate_simple_max_exporters.log"):
os.remove("generate_simple_max_exporters.log") os.remove("generate_simple_max_exporters.log")
log = open("generate_simple_max_exporters.log", "w") log = open("generate_simple_max_exporters.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from tools import * from tools import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Generate simple max exporters") printLog(log, "--- Generate simple max exporters")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
def processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp): def processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
newline = line.replace("%PreGenWarning%", "WARNING : this is a generated file, don't change it !") newline = line.replace("%PreGenWarning%", "WARNING : this is a generated file, don't change it !")
newline = newline.replace("%PreGenDateTimeStamp%", dateTimeStamp) newline = newline.replace("%PreGenDateTimeStamp%", dateTimeStamp)
newline = newline.replace("%PreGenProcessName%", processName) newline = newline.replace("%PreGenProcessName%", processName)
newline = newline.replace("%PreGenFileExtension%", fileExtension) newline = newline.replace("%PreGenFileExtension%", fileExtension)
newline = newline.replace("%PreGenSourceDirectoriesVariable%", sourceDirectoriesVariable) newline = newline.replace("%PreGenSourceDirectoriesVariable%", sourceDirectoriesVariable)
newline = newline.replace("%PreGenExportDirectoryVariable%", exportDirectoryVariable) newline = newline.replace("%PreGenExportDirectoryVariable%", exportDirectoryVariable)
newline = newline.replace("%PreGenInstallDirectoryVariable%", clientDirectoryVariable) newline = newline.replace("%PreGenInstallDirectoryVariable%", clientDirectoryVariable)
return newline return newline
def generateSimpleMaxExporterFile(sourceFile, destFile, writeMode, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp): def generateSimpleMaxExporterFile(sourceFile, destFile, writeMode, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
srcf = open(sourceFile, "r") srcf = open(sourceFile, "r")
dstf = open(destFile, writeMode) dstf = open(destFile, writeMode)
printLog(log, "WRITE " + destFile + " " + writeMode) printLog(log, "WRITE " + destFile + " " + writeMode)
for line in srcf: for line in srcf:
dstf.write(processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)) dstf.write(processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp))
dstf.close() dstf.close()
srcf.close() srcf.close()
def generateSimpleMaxExporter(processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable): def generateSimpleMaxExporter(processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable):
dateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) dateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
processDir = ScriptDirectory + "/processes/" + processName processDir = ScriptDirectory + "/processes/" + processName
mkPath(log, processDir) mkPath(log, processDir)
maxscriptDir = processDir + "/maxscript" maxscriptDir = processDir + "/maxscript"
mkPath(log, maxscriptDir) mkPath(log, maxscriptDir)
templateDir = os.getcwd().replace("\\", "/") + "/simple_max_exporter_template" templateDir = os.getcwd().replace("\\", "/") + "/simple_max_exporter_template"
mkPath(log, templateDir) mkPath(log, templateDir)
scriptDir = os.getcwd().replace("\\", "/") + "/max_exporter_scripts" scriptDir = os.getcwd().replace("\\", "/") + "/max_exporter_scripts"
mkPath(log, scriptDir) mkPath(log, scriptDir)
if not os.path.isfile(processDir + "/0_setup.py"): if not os.path.isfile(processDir + "/0_setup.py"):
generateSimpleMaxExporterFile(templateDir + "/0_setup.py", processDir + "/0_setup.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp) generateSimpleMaxExporterFile(templateDir + "/0_setup.py", processDir + "/0_setup.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
generateSimpleMaxExporterFile(templateDir + "/1_export_header.py", processDir + "/1_export.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp) generateSimpleMaxExporterFile(templateDir + "/1_export_header.py", processDir + "/1_export.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
generateSimpleMaxExporterFile(scriptDir + "/" + fileExtension + ".py", processDir + "/1_export.py", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp) generateSimpleMaxExporterFile(scriptDir + "/" + fileExtension + ".py", processDir + "/1_export.py", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
generateSimpleMaxExporterFile(templateDir + "/1_export_footer.py", processDir + "/1_export.py", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp) generateSimpleMaxExporterFile(templateDir + "/1_export_footer.py", processDir + "/1_export.py", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
if not os.path.isfile(processDir + "/2_build.py"): if not os.path.isfile(processDir + "/2_build.py"):
generateSimpleMaxExporterFile(templateDir + "/2_build.py", processDir + "/2_build.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp) generateSimpleMaxExporterFile(templateDir + "/2_build.py", processDir + "/2_build.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
if not os.path.isfile(processDir + "/3_install.py"): if not os.path.isfile(processDir + "/3_install.py"):
generateSimpleMaxExporterFile(templateDir + "/3_install.py", processDir + "/3_install.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp) generateSimpleMaxExporterFile(templateDir + "/3_install.py", processDir + "/3_install.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
generateSimpleMaxExporterFile(templateDir + "/export_header.ms", maxscriptDir + "/" + fileExtension + "_export.ms", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp) generateSimpleMaxExporterFile(templateDir + "/export_header.ms", maxscriptDir + "/" + fileExtension + "_export.ms", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
generateSimpleMaxExporterFile(scriptDir + "/" + fileExtension + ".ms", maxscriptDir + "/" + fileExtension + "_export.ms", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp) generateSimpleMaxExporterFile(scriptDir + "/" + fileExtension + ".ms", maxscriptDir + "/" + fileExtension + "_export.ms", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
generateSimpleMaxExporterFile(templateDir + "/export_footer.ms", maxscriptDir + "/" + fileExtension + "_export.ms", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp) generateSimpleMaxExporterFile(templateDir + "/export_footer.ms", maxscriptDir + "/" + fileExtension + "_export.ms", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
generateSimpleMaxExporter("skel", "skel", "SkelSourceDirectories", "SkelExportDirectory", "SkelInstallDirectory") generateSimpleMaxExporter("skel", "skel", "SkelSourceDirectories", "SkelExportDirectory", "SkelInstallDirectory")
generateSimpleMaxExporter("swt", "swt", "SwtSourceDirectories", "SwtExportDirectory", "SwtInstallDirectory") generateSimpleMaxExporter("swt", "swt", "SwtSourceDirectories", "SwtExportDirectory", "SwtInstallDirectory")
generateSimpleMaxExporter("zone", "zone", "ZoneSourceDirectory", "ZoneExportDirectory", "ZoneInstallDirectory") generateSimpleMaxExporter("zone", "zone", "ZoneSourceDirectory", "ZoneExportDirectory", "ZoneInstallDirectory")
printLog(log, "") printLog(log, "")
log.close() log.close()

@ -1,120 +1,120 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 0_setup.py # \file 0_setup.py
# \brief Run all setup processes # \brief Run all setup processes
# \date 2009-02-18 15:28GMT # \date 2009-02-18 15:28GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Run all setup processes # Run all setup processes
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../configuration") sys.path.append("../configuration")
if os.path.isfile("generate_tagged_max_exporters.log"): if os.path.isfile("generate_tagged_max_exporters.log"):
os.remove("generate_tagged_max_exporters.log") os.remove("generate_tagged_max_exporters.log")
log = open("generate_tagged_max_exporters.log", "w") log = open("generate_tagged_max_exporters.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from tools import * from tools import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Generate tagged max exporters") printLog(log, "--- Generate tagged max exporters")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
templateDir = os.getcwd().replace("\\", "/") + "/tagged_max_exporter_template" templateDir = os.getcwd().replace("\\", "/") + "/tagged_max_exporter_template"
mkPath(log, templateDir) mkPath(log, templateDir)
scriptDir = os.getcwd().replace("\\", "/") + "/max_exporter_scripts" scriptDir = os.getcwd().replace("\\", "/") + "/max_exporter_scripts"
mkPath(log, scriptDir) mkPath(log, scriptDir)
def processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp): def processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
newline = line.replace("%PreGenWarning%", "WARNING : this is a generated file, don't change it !") newline = line.replace("%PreGenWarning%", "WARNING : this is a generated file, don't change it !")
newline = newline.replace("%PreGenDateTimeStamp%", dateTimeStamp) newline = newline.replace("%PreGenDateTimeStamp%", dateTimeStamp)
newline = newline.replace("%PreGenProcessName%", processName) newline = newline.replace("%PreGenProcessName%", processName)
newline = newline.replace("%PreGenFileExtension%", fileExtension) newline = newline.replace("%PreGenFileExtension%", fileExtension)
newline = newline.replace("%PreGenSourceDirectoriesVariable%", sourceDirectoriesVariable) newline = newline.replace("%PreGenSourceDirectoriesVariable%", sourceDirectoriesVariable)
newline = newline.replace("%PreGenExportDirectoryVariable%", exportDirectoryVariable) newline = newline.replace("%PreGenExportDirectoryVariable%", exportDirectoryVariable)
newline = newline.replace("%PreGenTagExportDirectoryVariable%", tagExportDirectoryVariable) newline = newline.replace("%PreGenTagExportDirectoryVariable%", tagExportDirectoryVariable)
newline = newline.replace("%PreGenInstallDirectoryVariable%", clientDirectoryVariable) newline = newline.replace("%PreGenInstallDirectoryVariable%", clientDirectoryVariable)
return newline return newline
def generateTaggedMaxExporterFile(sourceFile, destFile, writeMode, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp): def generateTaggedMaxExporterFile(sourceFile, destFile, writeMode, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
srcf = open(sourceFile, "r") srcf = open(sourceFile, "r")
dstf = open(destFile, writeMode) dstf = open(destFile, writeMode)
printLog(log, "WRITE " + destFile + " " + writeMode) printLog(log, "WRITE " + destFile + " " + writeMode)
for line in srcf: for line in srcf:
dstf.write(processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)) dstf.write(processLine(line, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp))
dstf.close() dstf.close()
srcf.close() srcf.close()
def generateTaggedMaxScriptFile(processDir, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp): def generateTaggedMaxScriptFile(processDir, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
maxscriptDir = processDir + "/maxscript" maxscriptDir = processDir + "/maxscript"
mkPath(log, maxscriptDir) mkPath(log, maxscriptDir)
generateTaggedMaxExporterFile(templateDir + "/export_header.ms", maxscriptDir + "/" + fileExtension + "_export.ms", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp) generateTaggedMaxExporterFile(templateDir + "/export_header.ms", maxscriptDir + "/" + fileExtension + "_export.ms", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
generateTaggedMaxExporterFile(scriptDir + "/" + fileExtension + ".ms", maxscriptDir + "/" + fileExtension + "_export.ms", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp) generateTaggedMaxExporterFile(scriptDir + "/" + fileExtension + ".ms", maxscriptDir + "/" + fileExtension + "_export.ms", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
generateTaggedMaxExporterFile(templateDir + "/export_footer.ms", maxscriptDir + "/" + fileExtension + "_export.ms", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp) generateTaggedMaxExporterFile(templateDir + "/export_footer.ms", maxscriptDir + "/" + fileExtension + "_export.ms", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
def generateTaggedMaxScript(processName, fileExtension): def generateTaggedMaxScript(processName, fileExtension):
dateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) dateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
processDir = ScriptDirectory + "/processes/" + processName processDir = ScriptDirectory + "/processes/" + processName
mkPath(log, processDir) mkPath(log, processDir)
generateTaggedMaxScriptFile(processDir, processName, fileExtension, "_invalid", "_invalid", "_invalid", "_invalid", dateTimeStamp) generateTaggedMaxScriptFile(processDir, processName, fileExtension, "_invalid", "_invalid", "_invalid", "_invalid", dateTimeStamp)
def generateTaggedMaxExporter(processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable): def generateTaggedMaxExporter(processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable):
dateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) dateTimeStamp = time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time()))
processDir = ScriptDirectory + "/processes/" + processName processDir = ScriptDirectory + "/processes/" + processName
mkPath(log, processDir) mkPath(log, processDir)
if not os.path.isfile(processDir + "/0_setup.py"): if not os.path.isfile(processDir + "/0_setup.py"):
generateTaggedMaxExporterFile(templateDir + "/0_setup.py", processDir + "/0_setup.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp) generateTaggedMaxExporterFile(templateDir + "/0_setup.py", processDir + "/0_setup.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
generateTaggedMaxExporterFile(templateDir + "/1_export_header.py", processDir + "/1_export.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp) generateTaggedMaxExporterFile(templateDir + "/1_export_header.py", processDir + "/1_export.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
generateTaggedMaxExporterFile(scriptDir + "/" + fileExtension + ".py", processDir + "/1_export.py", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp) generateTaggedMaxExporterFile(scriptDir + "/" + fileExtension + ".py", processDir + "/1_export.py", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
generateTaggedMaxExporterFile(templateDir + "/1_export_footer.py", processDir + "/1_export.py", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp) generateTaggedMaxExporterFile(templateDir + "/1_export_footer.py", processDir + "/1_export.py", "a", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
if not os.path.isfile(processDir + "/2_build.py"): if not os.path.isfile(processDir + "/2_build.py"):
generateTaggedMaxExporterFile(templateDir + "/2_build.py", processDir + "/2_build.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp) generateTaggedMaxExporterFile(templateDir + "/2_build.py", processDir + "/2_build.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
if not os.path.isfile(processDir + "/3_install.py"): if not os.path.isfile(processDir + "/3_install.py"):
generateTaggedMaxExporterFile(templateDir + "/3_install.py", processDir + "/3_install.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp) generateTaggedMaxExporterFile(templateDir + "/3_install.py", processDir + "/3_install.py", "w", processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
generateTaggedMaxScriptFile(processDir, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp) generateTaggedMaxScriptFile(processDir, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp)
generateTaggedMaxExporter("pacs_prim", "pacs_prim", "PacsPrimSourceDirectories", "PacsPrimExportDirectory", "PacsPrimTagExportDirectory", "PacsPrimInstallDirectory") generateTaggedMaxExporter("pacs_prim", "pacs_prim", "PacsPrimSourceDirectories", "PacsPrimExportDirectory", "PacsPrimTagExportDirectory", "PacsPrimInstallDirectory")
generateTaggedMaxExporter("clodbank", "clod", "ClodSourceDirectories", "ClodExportDirectory", "ClodTagExportDirectory", "ClodInstallDirectory") generateTaggedMaxExporter("clodbank", "clod", "ClodSourceDirectories", "ClodExportDirectory", "ClodTagExportDirectory", "ClodInstallDirectory")
generateTaggedMaxScript("ig", "ig") generateTaggedMaxScript("ig", "ig")
generateTaggedMaxExporter("rbank", "cmb", "RBankCmbSourceDirectories", "RBankCmbExportDirectory", "RBankCmbTagExportDirectory", "PacsInstallDirectory") generateTaggedMaxExporter("rbank", "cmb", "RBankCmbSourceDirectories", "RBankCmbExportDirectory", "RBankCmbTagExportDirectory", "PacsInstallDirectory")
generateTaggedMaxExporter("veget", "veget", "VegetSourceDirectories", "VegetExportDirectory", "VegetTagExportDirectory", "VegetInstallDirectory") generateTaggedMaxExporter("veget", "veget", "VegetSourceDirectories", "VegetExportDirectory", "VegetTagExportDirectory", "VegetInstallDirectory")
generateTaggedMaxScript("shape", "shape") generateTaggedMaxScript("shape", "shape")
generateTaggedMaxExporter("anim", "anim", "AnimSourceDirectories", "AnimExportDirectory", "AnimTagExportDirectory", "AnimInstallDirectory") generateTaggedMaxExporter("anim", "anim", "AnimSourceDirectories", "AnimExportDirectory", "AnimTagExportDirectory", "AnimInstallDirectory")
printLog(log, "") printLog(log, "")
log.close() log.close()

@ -1,7 +1,7 @@
# Remove bad file from previous script version # Remove bad file from previous script version
listPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable% + "/landscape_col_prim_pacs_list.txt" listPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable% + "/landscape_col_prim_pacs_list.txt"
if os.path.isfile(listPath): if os.path.isfile(listPath):
os.remove(listPath) os.remove(listPath)

@ -1,8 +1,8 @@
printLog(log, ">>> Export skel directly <<<") printLog(log, ">>> Export skel directly <<<")
mkPath(log, ExportBuildDirectory + "/" + SkelExportDirectory) mkPath(log, ExportBuildDirectory + "/" + SkelExportDirectory)
for dir in SkelSourceDirectories: for dir in SkelSourceDirectories:
mkPath(log, DatabaseDirectory + "/" + dir) mkPath(log, DatabaseDirectory + "/" + dir)
copyFilesExtNoSubdirIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + SkelExportDirectory, ".skel") copyFilesExtNoSubdirIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + SkelExportDirectory, ".skel")

@ -1,8 +1,8 @@
printLog(log, ">>> Try to copy ligo zone if any <<<") printLog(log, ">>> Try to copy ligo zone if any <<<")
printLog(log, "********************************") printLog(log, "********************************")
printLog(log, "******** TODO ********") printLog(log, "******** TODO ********")
printLog(log, "********************************") printLog(log, "********************************")
printLog(log, "") printLog(log, "")

@ -1,65 +1,65 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 0_setup.py # \file 0_setup.py
# \brief setup %PreGenProcessName% # \brief setup %PreGenProcessName%
# \date %PreGenDateTimeStamp% # \date %PreGenDateTimeStamp%
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Setup %PreGenProcessName% # Setup %PreGenProcessName%
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Setup %PreGenProcessName%") printLog(log, "--- Setup %PreGenProcessName%")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Setup source directories # Setup source directories
printLog(log, ">>> Setup source directories <<<") printLog(log, ">>> Setup source directories <<<")
for dir in %PreGenSourceDirectoriesVariable%: for dir in %PreGenSourceDirectoriesVariable%:
mkPath(log, DatabaseDirectory + "/" + dir) mkPath(log, DatabaseDirectory + "/" + dir)
# Setup export directories # Setup export directories
printLog(log, ">>> Setup export directories <<<") printLog(log, ">>> Setup export directories <<<")
mkPath(log, ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%) mkPath(log, ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%)
# Setup build directories # Setup build directories
printLog(log, ">>> Setup build directories <<<") printLog(log, ">>> Setup build directories <<<")
# Setup client directories # Setup client directories
printLog(log, ">>> Setup client directories <<<") printLog(log, ">>> Setup client directories <<<")
mkPath(log, InstallDirectory + "/" + %PreGenInstallDirectoryVariable%) mkPath(log, InstallDirectory + "/" + %PreGenInstallDirectoryVariable%)
log.close() log.close()
# end of file # end of file

@ -1,7 +1,7 @@
printLog(log, "") printLog(log, "")
log.close() log.close()
# end of file # end of file

@ -1,92 +1,92 @@
#!/usr/bin/python #!/usr/bin/python
# #
# ################################################################# # #################################################################
# ## %PreGenWarning% # ## %PreGenWarning%
# ################################################################# # #################################################################
# #
# \file 1_export.py # \file 1_export.py
# \brief Export %PreGenProcessName% # \brief Export %PreGenProcessName%
# \date %PreGenDateTimeStamp% # \date %PreGenDateTimeStamp%
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Export %PreGenProcessName% # Export %PreGenProcessName%
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Export %PreGenProcessName%") printLog(log, "--- Export %PreGenProcessName%")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Find tools # Find tools
# ... # ...
# Export %PreGenProcessName% 3dsmax # Export %PreGenProcessName% 3dsmax
if MaxAvailable: if MaxAvailable:
# Find tools # Find tools
Max = findMax(log, MaxDirectory, MaxExecutable) Max = findMax(log, MaxDirectory, MaxExecutable)
printLog(log, "") printLog(log, "")
printLog(log, ">>> Export %PreGenProcessName% 3dsmax <<<") printLog(log, ">>> Export %PreGenProcessName% 3dsmax <<<")
mkPath(log, ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%) mkPath(log, ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%)
for dir in %PreGenSourceDirectoriesVariable%: for dir in %PreGenSourceDirectoriesVariable%:
mkPath(log, DatabaseDirectory + "/" + dir) mkPath(log, DatabaseDirectory + "/" + dir)
if (needUpdateDirByTagLog(log, DatabaseDirectory + "/" + dir, ".max", ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%, ".%PreGenFileExtension%")): if (needUpdateDirByTagLog(log, DatabaseDirectory + "/" + dir, ".max", ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%, ".%PreGenFileExtension%")):
scriptSrc = "maxscript/%PreGenFileExtension%_export.ms" scriptSrc = "maxscript/%PreGenFileExtension%_export.ms"
scriptDst = MaxUserDirectory + "/scripts/%PreGenFileExtension%_export.ms" scriptDst = MaxUserDirectory + "/scripts/%PreGenFileExtension%_export.ms"
outputLogfile = ScriptDirectory + "/processes/%PreGenProcessName%/log.log" outputLogfile = ScriptDirectory + "/processes/%PreGenProcessName%/log.log"
outputDirectory = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable% outputDirectory = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
maxSourceDir = DatabaseDirectory + "/" + dir maxSourceDir = DatabaseDirectory + "/" + dir
tagList = findFiles(log, outputDirectory, "", ".%PreGenFileExtension%") tagList = findFiles(log, outputDirectory, "", ".%PreGenFileExtension%")
tagLen = len(tagList) tagLen = len(tagList)
if os.path.isfile(scriptDst): if os.path.isfile(scriptDst):
os.remove(scriptDst) os.remove(scriptDst)
tagDiff = 1 tagDiff = 1
sSrc = open(scriptSrc, "r") sSrc = open(scriptSrc, "r")
sDst = open(scriptDst, "w") sDst = open(scriptDst, "w")
for line in sSrc: for line in sSrc:
newline = line.replace("%OutputLogfile%", outputLogfile) newline = line.replace("%OutputLogfile%", outputLogfile)
newline = newline.replace("%MaxSourceDirectory%", maxSourceDir) newline = newline.replace("%MaxSourceDirectory%", maxSourceDir)
newline = newline.replace("%OutputDirectory%", outputDirectory) newline = newline.replace("%OutputDirectory%", outputDirectory)
sDst.write(newline) sDst.write(newline)
sSrc.close() sSrc.close()
sDst.close() sDst.close()
while tagDiff > 0: while tagDiff > 0:
printLog(log, "MAXSCRIPT " + scriptDst) printLog(log, "MAXSCRIPT " + scriptDst)
subprocess.call([ Max, "-U", "MAXScript", "%PreGenFileExtension%_export.ms", "-q", "-mi", "-mip" ]) subprocess.call([ Max, "-U", "MAXScript", "%PreGenFileExtension%_export.ms", "-q", "-mi", "-mip" ])
tagList = findFiles(log, outputDirectory, "", ".%PreGenFileExtension%") tagList = findFiles(log, outputDirectory, "", ".%PreGenFileExtension%")
newTagLen = len(tagList) newTagLen = len(tagList)
tagDiff = newTagLen - tagLen tagDiff = newTagLen - tagLen
tagLen = newTagLen tagLen = newTagLen
printLog(log, "Exported " + str(tagDiff) + " .%PreGenFileExtension% files!") printLog(log, "Exported " + str(tagDiff) + " .%PreGenFileExtension% files!")
os.remove(scriptDst) os.remove(scriptDst)

@ -1,49 +1,49 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 2_build.py # \file 2_build.py
# \brief Build %PreGenProcessName% # \brief Build %PreGenProcessName%
# \date %PreGenDateTimeStamp% # \date %PreGenDateTimeStamp%
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Build %PreGenProcessName% # Build %PreGenProcessName%
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Build %PreGenProcessName%") printLog(log, "--- Build %PreGenProcessName%")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
log.close() log.close()
# end of file # end of file

@ -1,57 +1,57 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 3_install.py # \file 3_install.py
# \brief Install %PreGenProcessName% # \brief Install %PreGenProcessName%
# \date %PreGenDateTimeStamp% # \date %PreGenDateTimeStamp%
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Install %PreGenProcessName% # Install %PreGenProcessName%
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Install %PreGenProcessName%") printLog(log, "--- Install %PreGenProcessName%")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
printLog(log, ">>> Install %PreGenProcessName% <<<") printLog(log, ">>> Install %PreGenProcessName% <<<")
exportPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable% exportPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
mkPath(log, exportPath) mkPath(log, exportPath)
installPath = InstallDirectory + "/" + %PreGenInstallDirectoryVariable% installPath = InstallDirectory + "/" + %PreGenInstallDirectoryVariable%
mkPath(log, installPath) mkPath(log, installPath)
copyFilesExtNoSubdirIfNeeded(log, exportPath, installPath, ".%PreGenFileExtension%") copyFilesExtNoSubdirIfNeeded(log, exportPath, installPath, ".%PreGenFileExtension%")
printLog(log, "") printLog(log, "")
log.close() log.close()
# end of file # end of file

@ -1,66 +1,66 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 0_setup.py # \file 0_setup.py
# \brief setup %PreGenProcessName% # \brief setup %PreGenProcessName%
# \date %PreGenDateTimeStamp% # \date %PreGenDateTimeStamp%
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Setup %PreGenProcessName% # Setup %PreGenProcessName%
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Setup %PreGenProcessName%") printLog(log, "--- Setup %PreGenProcessName%")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Setup source directories # Setup source directories
printLog(log, ">>> Setup source directories <<<") printLog(log, ">>> Setup source directories <<<")
for dir in %PreGenSourceDirectoriesVariable%: for dir in %PreGenSourceDirectoriesVariable%:
mkPath(log, DatabaseDirectory + "/" + dir) mkPath(log, DatabaseDirectory + "/" + dir)
# Setup export directories # Setup export directories
printLog(log, ">>> Setup export directories <<<") printLog(log, ">>> Setup export directories <<<")
mkPath(log, ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%) mkPath(log, ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%)
mkPath(log, ExportBuildDirectory + "/" + %PreGenTagExportDirectoryVariable%) mkPath(log, ExportBuildDirectory + "/" + %PreGenTagExportDirectoryVariable%)
# Setup build directories # Setup build directories
printLog(log, ">>> Setup build directories <<<") printLog(log, ">>> Setup build directories <<<")
# Setup client directories # Setup client directories
printLog(log, ">>> Setup client directories <<<") printLog(log, ">>> Setup client directories <<<")
mkPath(log, InstallDirectory + "/" + %PreGenInstallDirectoryVariable%) mkPath(log, InstallDirectory + "/" + %PreGenInstallDirectoryVariable%)
log.close() log.close()
# end of file # end of file

@ -1,9 +1,9 @@
log.close() log.close()
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
shutil.move("temp_log.log", "log.log") shutil.move("temp_log.log", "log.log")
# end of file # end of file

@ -1,130 +1,130 @@
#!/usr/bin/python #!/usr/bin/python
# #
# ################################################################# # #################################################################
# ## %PreGenWarning% # ## %PreGenWarning%
# ################################################################# # #################################################################
# #
# \file 1_export.py # \file 1_export.py
# \brief Export %PreGenProcessName% # \brief Export %PreGenProcessName%
# \date %PreGenDateTimeStamp% # \date %PreGenDateTimeStamp%
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Export %PreGenProcessName% # Export %PreGenProcessName%
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
if os.path.isfile("temp_log.log"): if os.path.isfile("temp_log.log"):
os.remove("temp_log.log") os.remove("temp_log.log")
log = open("temp_log.log", "w") log = open("temp_log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Export %PreGenProcessName%") printLog(log, "--- Export %PreGenProcessName%")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Find tools # Find tools
# ... # ...
# Export %PreGenProcessName% 3dsmax # Export %PreGenProcessName% 3dsmax
if MaxAvailable: if MaxAvailable:
# Find tools # Find tools
Max = findMax(log, MaxDirectory, MaxExecutable) Max = findMax(log, MaxDirectory, MaxExecutable)
printLog(log, "") printLog(log, "")
printLog(log, ">>> Export %PreGenProcessName% 3dsmax <<<") printLog(log, ">>> Export %PreGenProcessName% 3dsmax <<<")
mkPath(log, ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%) mkPath(log, ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%)
mkPath(log, ExportBuildDirectory + "/" + %PreGenTagExportDirectoryVariable%) mkPath(log, ExportBuildDirectory + "/" + %PreGenTagExportDirectoryVariable%)
for dir in %PreGenSourceDirectoriesVariable%: for dir in %PreGenSourceDirectoriesVariable%:
mkPath(log, DatabaseDirectory + "/" + dir) mkPath(log, DatabaseDirectory + "/" + dir)
if (needUpdateDirByTagLog(log, DatabaseDirectory + "/" + dir, ".max", ExportBuildDirectory + "/" + %PreGenTagExportDirectoryVariable%, ".max.tag")): if (needUpdateDirByTagLog(log, DatabaseDirectory + "/" + dir, ".max", ExportBuildDirectory + "/" + %PreGenTagExportDirectoryVariable%, ".max.tag")):
scriptSrc = "maxscript/%PreGenFileExtension%_export.ms" scriptSrc = "maxscript/%PreGenFileExtension%_export.ms"
scriptDst = MaxUserDirectory + "/scripts/%PreGenFileExtension%_export.ms" scriptDst = MaxUserDirectory + "/scripts/%PreGenFileExtension%_export.ms"
outputLogfile = ScriptDirectory + "/processes/%PreGenProcessName%/log.log" outputLogfile = ScriptDirectory + "/processes/%PreGenProcessName%/log.log"
outputDirectory = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable% outputDirectory = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
tagDirectory = ExportBuildDirectory + "/" + %PreGenTagExportDirectoryVariable% tagDirectory = ExportBuildDirectory + "/" + %PreGenTagExportDirectoryVariable%
maxSourceDir = DatabaseDirectory + "/" + dir maxSourceDir = DatabaseDirectory + "/" + dir
maxRunningTagFile = tagDirectory + "/max_running.tag" maxRunningTagFile = tagDirectory + "/max_running.tag"
tagList = findFiles(log, tagDirectory, "", ".max.tag") tagList = findFiles(log, tagDirectory, "", ".max.tag")
tagLen = len(tagList) tagLen = len(tagList)
if os.path.isfile(scriptDst): if os.path.isfile(scriptDst):
os.remove(scriptDst) os.remove(scriptDst)
tagDiff = 1 tagDiff = 1
sSrc = open(scriptSrc, "r") sSrc = open(scriptSrc, "r")
sDst = open(scriptDst, "w") sDst = open(scriptDst, "w")
for line in sSrc: for line in sSrc:
newline = line.replace("%OutputLogfile%", outputLogfile) newline = line.replace("%OutputLogfile%", outputLogfile)
newline = newline.replace("%MaxSourceDirectory%", maxSourceDir) newline = newline.replace("%MaxSourceDirectory%", maxSourceDir)
newline = newline.replace("%OutputDirectory%", outputDirectory) newline = newline.replace("%OutputDirectory%", outputDirectory)
newline = newline.replace("%TagDirectory%", tagDirectory) newline = newline.replace("%TagDirectory%", tagDirectory)
sDst.write(newline) sDst.write(newline)
sSrc.close() sSrc.close()
sDst.close() sDst.close()
zeroRetryLimit = 3 zeroRetryLimit = 3
while tagDiff > 0: while tagDiff > 0:
mrt = open(maxRunningTagFile, "w") mrt = open(maxRunningTagFile, "w")
mrt.write("moe-moe-kyun") mrt.write("moe-moe-kyun")
mrt.close() mrt.close()
printLog(log, "MAXSCRIPT " + scriptDst) printLog(log, "MAXSCRIPT " + scriptDst)
subprocess.call([ Max, "-U", "MAXScript", "%PreGenFileExtension%_export.ms", "-q", "-mi", "-mip" ]) subprocess.call([ Max, "-U", "MAXScript", "%PreGenFileExtension%_export.ms", "-q", "-mi", "-mip" ])
if os.path.exists(outputLogfile): if os.path.exists(outputLogfile):
try: try:
lSrc = open(outputLogfile, "r") lSrc = open(outputLogfile, "r")
for line in lSrc: for line in lSrc:
lineStrip = line.strip() lineStrip = line.strip()
if (len(lineStrip) > 0): if (len(lineStrip) > 0):
printLog(log, lineStrip) printLog(log, lineStrip)
lSrc.close() lSrc.close()
os.remove(outputLogfile) os.remove(outputLogfile)
except Exception: except Exception:
printLog(log, "ERROR Failed to read 3dsmax log") printLog(log, "ERROR Failed to read 3dsmax log")
else: else:
printLog(log, "WARNING No 3dsmax log") printLog(log, "WARNING No 3dsmax log")
tagList = findFiles(log, tagDirectory, "", ".max.tag") tagList = findFiles(log, tagDirectory, "", ".max.tag")
newTagLen = len(tagList) newTagLen = len(tagList)
tagDiff = newTagLen - tagLen tagDiff = newTagLen - tagLen
tagLen = newTagLen tagLen = newTagLen
addTagDiff = 0 addTagDiff = 0
if os.path.exists(maxRunningTagFile): if os.path.exists(maxRunningTagFile):
printLog(log, "FAIL 3ds Max crashed and/or file export failed!") printLog(log, "FAIL 3ds Max crashed and/or file export failed!")
if tagDiff == 0: if tagDiff == 0:
if zeroRetryLimit > 0: if zeroRetryLimit > 0:
zeroRetryLimit = zeroRetryLimit - 1 zeroRetryLimit = zeroRetryLimit - 1
addTagDiff = 1 addTagDiff = 1
else: else:
printLog(log, "FAIL Retry limit reached!") printLog(log, "FAIL Retry limit reached!")
else: else:
addTagDiff = 1 addTagDiff = 1
os.remove(maxRunningTagFile) os.remove(maxRunningTagFile)
printLog(log, "Exported " + str(tagDiff) + " .max files!") printLog(log, "Exported " + str(tagDiff) + " .max files!")
tagDiff += addTagDiff tagDiff += addTagDiff
os.remove(scriptDst) os.remove(scriptDst)
printLog(log, "") printLog(log, "")

@ -1,49 +1,49 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 2_build.py # \file 2_build.py
# \brief Build %PreGenProcessName% # \brief Build %PreGenProcessName%
# \date %PreGenDateTimeStamp% # \date %PreGenDateTimeStamp%
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Build %PreGenProcessName% # Build %PreGenProcessName%
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Build %PreGenProcessName%") printLog(log, "--- Build %PreGenProcessName%")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
log.close() log.close()
# end of file # end of file

@ -1,57 +1,57 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 3_install.py # \file 3_install.py
# \brief Install %PreGenProcessName% # \brief Install %PreGenProcessName%
# \date %PreGenDateTimeStamp% # \date %PreGenDateTimeStamp%
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Install %PreGenProcessName% # Install %PreGenProcessName%
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Install %PreGenProcessName%") printLog(log, "--- Install %PreGenProcessName%")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
printLog(log, ">>> Install %PreGenProcessName% <<<") printLog(log, ">>> Install %PreGenProcessName% <<<")
exportPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable% exportPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
mkPath(log, exportPath) mkPath(log, exportPath)
installPath = InstallDirectory + "/" + %PreGenInstallDirectoryVariable% installPath = InstallDirectory + "/" + %PreGenInstallDirectoryVariable%
mkPath(log, installPath) mkPath(log, installPath)
copyFilesNoTreeIfNeeded(log, exportPath, installPath) copyFilesNoTreeIfNeeded(log, exportPath, installPath)
printLog(log, "") printLog(log, "")
log.close() log.close()
# end of file # end of file

@ -1,89 +1,89 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 0_setup.py # \file 0_setup.py
# \brief Run all setup processes # \brief Run all setup processes
# \date 2009-02-18 15:28GMT # \date 2009-02-18 15:28GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Run all setup processes # Run all setup processes
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
sys.path.append("../configuration") sys.path.append("../configuration")
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
parser.add_argument('--includeprocess', '-ipc', nargs='+') parser.add_argument('--includeprocess', '-ipc', nargs='+')
parser.add_argument('--excludeprocess', '-epc', nargs='+') parser.add_argument('--excludeprocess', '-epc', nargs='+')
args = parser.parse_args() args = parser.parse_args()
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
#printLog(log, "") #printLog(log, "")
#printLog(log, "-------") #printLog(log, "-------")
#printLog(log, "--- Setup project") #printLog(log, "--- Setup project")
#printLog(log, "-------") #printLog(log, "-------")
#printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) #printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
#printLog(log, "") #printLog(log, "")
#printLog(log, "") #printLog(log, "")
#printLog(log, "-------") #printLog(log, "-------")
#printLog(log, "--- Setup client directories") #printLog(log, "--- Setup client directories")
#printLog(log, "-------") #printLog(log, "-------")
#printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) #printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
#printLog(log, "") #printLog(log, "")
#for dir in ClientSetupDirectories: #for dir in ClientSetupDirectories:
# mkPath(log, InstallDirectory + "/" + dir) # mkPath(log, InstallDirectory + "/" + dir)
#printLog(log, "") #printLog(log, "")
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Run the setup processes") printLog(log, "--- Run the setup processes")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# For each process # For each process
for processName in ProcessToComplete: for processName in ProcessToComplete:
if ((args.includeprocess == None or processName in args.includeprocess) and (args.excludeprocess == None or not processName in args.excludeprocess)): if ((args.includeprocess == None or processName in args.includeprocess) and (args.excludeprocess == None or not processName in args.excludeprocess)):
printLog(log, "PROCESS " + processName) printLog(log, "PROCESS " + processName)
os.chdir(processName) os.chdir(processName)
try: try:
subprocess.call([ "python", "0_setup.py" ]) subprocess.call([ "python", "0_setup.py" ])
except Exception, e: except Exception, e:
printLog(log, "<" + processName + "> " + str(e)) printLog(log, "<" + processName + "> " + str(e))
os.chdir("..") os.chdir("..")
try: try:
processLog = open(processName + "/log.log", "r") processLog = open(processName + "/log.log", "r")
processLogData = processLog.read() processLogData = processLog.read()
processLog.close() processLog.close()
log.write(processLogData) log.write(processLogData)
except Exception, e: except Exception, e:
printLog(log, "<" + processName + "> " + str(e)) printLog(log, "<" + processName + "> " + str(e))
# subprocess.call("idle.bat") # subprocess.call("idle.bat")
else: else:
printLog(log, "IGNORE PROCESS " + processName) printLog(log, "IGNORE PROCESS " + processName)
printLog(log, "") printLog(log, "")
log.close() log.close()

@ -1,73 +1,73 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 1_export.py # \file 1_export.py
# \brief Run all export processes # \brief Run all export processes
# \date 2009-02-18 09:22GMT # \date 2009-02-18 09:22GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Run all export processes # Run all export processes
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
sys.path.append("../configuration") sys.path.append("../configuration")
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
parser.add_argument('--includeprocess', '-ipc', nargs='+') parser.add_argument('--includeprocess', '-ipc', nargs='+')
parser.add_argument('--excludeprocess', '-epc', nargs='+') parser.add_argument('--excludeprocess', '-epc', nargs='+')
args = parser.parse_args() args = parser.parse_args()
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
# Log error # Log error
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Run the export processes") printLog(log, "--- Run the export processes")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# For each process # For each process
for processName in ProcessToComplete: for processName in ProcessToComplete:
if ((args.includeprocess == None or processName in args.includeprocess) and (args.excludeprocess == None or not processName in args.excludeprocess)): if ((args.includeprocess == None or processName in args.includeprocess) and (args.excludeprocess == None or not processName in args.excludeprocess)):
printLog(log, "PROCESS " + processName) printLog(log, "PROCESS " + processName)
os.chdir(processName) os.chdir(processName)
try: try:
subprocess.call([ "python", "1_export.py" ]) subprocess.call([ "python", "1_export.py" ])
except Exception, e: except Exception, e:
printLog(log, "<" + processName + "> " + str(e)) printLog(log, "<" + processName + "> " + str(e))
os.chdir("..") os.chdir("..")
try: try:
processLog = open(processName + "/log.log", "r") processLog = open(processName + "/log.log", "r")
processLogData = processLog.read() processLogData = processLog.read()
processLog.close() processLog.close()
log.write(processLogData) log.write(processLogData)
except Exception, e: except Exception, e:
printLog(log, "<" + processName + "> " + str(e)) printLog(log, "<" + processName + "> " + str(e))
# subprocess.call("idle.bat") # subprocess.call("idle.bat")
else: else:
printLog(log, "IGNORE PROCESS " + processName) printLog(log, "IGNORE PROCESS " + processName)
printLog(log, "") printLog(log, "")
log.close() log.close()

@ -1,73 +1,73 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 2_build.py # \file 2_build.py
# \brief Run all build processes # \brief Run all build processes
# \date 2009-02-18 09:22GMT # \date 2009-02-18 09:22GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Run all build processes # Run all build processes
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
sys.path.append("../configuration") sys.path.append("../configuration")
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
parser.add_argument('--includeprocess', '-ipc', nargs='+') parser.add_argument('--includeprocess', '-ipc', nargs='+')
parser.add_argument('--excludeprocess', '-epc', nargs='+') parser.add_argument('--excludeprocess', '-epc', nargs='+')
args = parser.parse_args() args = parser.parse_args()
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
# Log error # Log error
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Run the build processes") printLog(log, "--- Run the build processes")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# For each process # For each process
for processName in ProcessToComplete: for processName in ProcessToComplete:
if ((args.includeprocess == None or processName in args.includeprocess) and (args.excludeprocess == None or not processName in args.excludeprocess)): if ((args.includeprocess == None or processName in args.includeprocess) and (args.excludeprocess == None or not processName in args.excludeprocess)):
printLog(log, "PROCESS " + processName) printLog(log, "PROCESS " + processName)
os.chdir(processName) os.chdir(processName)
try: try:
subprocess.call([ "python", "2_build.py" ]) subprocess.call([ "python", "2_build.py" ])
except Exception, e: except Exception, e:
printLog(log, "<" + processName + "> " + str(e)) printLog(log, "<" + processName + "> " + str(e))
os.chdir("..") os.chdir("..")
try: try:
processLog = open(processName + "/log.log", "r") processLog = open(processName + "/log.log", "r")
processLogData = processLog.read() processLogData = processLog.read()
processLog.close() processLog.close()
log.write(processLogData) log.write(processLogData)
except Exception, e: except Exception, e:
printLog(log, "<" + processName + "> " + str(e)) printLog(log, "<" + processName + "> " + str(e))
# subprocess.call("idle.bat") # subprocess.call("idle.bat")
else: else:
printLog(log, "IGNORE PROCESS " + processName) printLog(log, "IGNORE PROCESS " + processName)
printLog(log, "") printLog(log, "")
log.close() log.close()

@ -1,72 +1,72 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 3_install.py # \file 3_install.py
# \brief Run all install processes # \brief Run all install processes
# \date 2009-02-18 16:19GMT # \date 2009-02-18 16:19GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Run all install processes # Run all install processes
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
sys.path.append("../configuration") sys.path.append("../configuration")
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
parser.add_argument('--includeprocess', '-ipc', nargs='+') parser.add_argument('--includeprocess', '-ipc', nargs='+')
parser.add_argument('--excludeprocess', '-epc', nargs='+') parser.add_argument('--excludeprocess', '-epc', nargs='+')
args = parser.parse_args() args = parser.parse_args()
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Run the install processes") printLog(log, "--- Run the install processes")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# For each process # For each process
for processName in ProcessToComplete: for processName in ProcessToComplete:
if ((args.includeprocess == None or processName in args.includeprocess) and (args.excludeprocess == None or not processName in args.excludeprocess)): if ((args.includeprocess == None or processName in args.includeprocess) and (args.excludeprocess == None or not processName in args.excludeprocess)):
printLog(log, "PROCESS " + processName) printLog(log, "PROCESS " + processName)
os.chdir(processName) os.chdir(processName)
try: try:
subprocess.call([ "python", "3_install.py" ]) subprocess.call([ "python", "3_install.py" ])
except Exception, e: except Exception, e:
printLog(log, "<" + processName + "> " + str(e)) printLog(log, "<" + processName + "> " + str(e))
os.chdir("..") os.chdir("..")
try: try:
processLog = open(processName + "/log.log", "r") processLog = open(processName + "/log.log", "r")
processLogData = processLog.read() processLogData = processLog.read()
processLog.close() processLog.close()
log.write(processLogData) log.write(processLogData)
except Exception, e: except Exception, e:
printLog(log, "<" + processName + "> " + str(e)) printLog(log, "<" + processName + "> " + str(e))
# subprocess.call("idle.bat") # subprocess.call("idle.bat")
else: else:
printLog(log, "IGNORE PROCESS " + processName) printLog(log, "IGNORE PROCESS " + processName)
printLog(log, "") printLog(log, "")
log.close() log.close()

@ -1,66 +1,66 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 0_setup.py # \file 0_setup.py
# \brief setup dummy # \brief setup dummy
# \date 2010-05-24 13:42GMT # \date 2010-05-24 13:42GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Setup dummy # Setup dummy
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Setup dummy") printLog(log, "--- Setup dummy")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Setup source directories # Setup source directories
printLog(log, ">>> Setup source directories <<<") printLog(log, ">>> Setup source directories <<<")
#for dir in MapSourceDirectories: #for dir in MapSourceDirectories:
# mkPath(log, DatabaseDirectory + "/" + dir) # mkPath(log, DatabaseDirectory + "/" + dir)
# Setup export directories # Setup export directories
printLog(log, ">>> Setup export directories <<<") printLog(log, ">>> Setup export directories <<<")
#mkPath(log, ExportBuildDirectory + "/" + DummyTagExportDirectory) #mkPath(log, ExportBuildDirectory + "/" + DummyTagExportDirectory)
# Setup build directories # Setup build directories
printLog(log, ">>> Setup build directories <<<") printLog(log, ">>> Setup build directories <<<")
#mkPath(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory) #mkPath(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory)
# Setup client directories # Setup client directories
printLog(log, ">>> Setup client directories <<<") printLog(log, ">>> Setup client directories <<<")
#mkPath(log, InstallDirectory + "/" + DummyInstallDirectory) #mkPath(log, InstallDirectory + "/" + DummyInstallDirectory)
log.close() log.close()
# end of file # end of file

@ -1,117 +1,117 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 1_export.py # \file 1_export.py
# \brief Export dummy # \brief Export dummy
# \date 2010-05-24 13:42GMT # \date 2010-05-24 13:42GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Export dummy # Export dummy
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Export dummy") printLog(log, "--- Export dummy")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
if MaxAvailable: if MaxAvailable:
# Find tools # Find tools
Max = findMax(log, MaxDirectory, MaxExecutable) Max = findMax(log, MaxDirectory, MaxExecutable)
# ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix) # ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix)
printLog(log, "") printLog(log, "")
# Export dummy 3dsmax # Export dummy 3dsmax
printLog(log, ">>> Export dummy 3dsmax <<<") printLog(log, ">>> Export dummy 3dsmax <<<")
# Build paths # Build paths
#scriptSrc = "maxscript/dummy_export.ms" #scriptSrc = "maxscript/dummy_export.ms"
# scriptDst = MaxDirectory + "/scripts/dummy_export.ms" # scriptDst = MaxDirectory + "/scripts/dummy_export.ms"
#scriptDst = MaxUserDirectory + "/scripts/dummy_export.ms" #scriptDst = MaxUserDirectory + "/scripts/dummy_export.ms"
#logFile = ScriptDirectory + "/processes/dummy/log.log" #logFile = ScriptDirectory + "/processes/dummy/log.log"
#outDirTag = ExportBuildDirectory + "/" + DummyTagExportDirectory #outDirTag = ExportBuildDirectory + "/" + DummyTagExportDirectory
#mkPath(log, outDirTag) #mkPath(log, outDirTag)
#outDirWithoutCoarse = ExportBuildDirectory + "/" + DummyExportDirectory #outDirWithoutCoarse = ExportBuildDirectory + "/" + DummyExportDirectory
#mkPath(log, outDirWithoutCoarse) #mkPath(log, outDirWithoutCoarse)
#outDirWithCoarse = ExportBuildDirectory + "/" + DummyWithCoarseMeshExportDirectory #outDirWithCoarse = ExportBuildDirectory + "/" + DummyWithCoarseMeshExportDirectory
#mkPath(log, outDirWithCoarse) #mkPath(log, outDirWithCoarse)
#outDirLightmap = ExportBuildDirectory + "/" + DummyLightmapNotOptimizedExportDirectory #outDirLightmap = ExportBuildDirectory + "/" + DummyLightmapNotOptimizedExportDirectory
#mkPath(log, outDirLightmap) #mkPath(log, outDirLightmap)
#outDirAnim = ExportBuildDirectory + "/" + DummyAnimExportDirectory #outDirAnim = ExportBuildDirectory + "/" + DummyAnimExportDirectory
#mkPath(log, outDirAnim) #mkPath(log, outDirAnim)
#tagList = findFiles(log, outDirTag, "", ".tag") #tagList = findFiles(log, outDirTag, "", ".tag")
#tagLen = len(tagList) #tagLen = len(tagList)
# For each directoy # For each directoy
#if os.path.isfile(scriptDst): #if os.path.isfile(scriptDst):
# os.remove(scriptDst) # os.remove(scriptDst)
#for dir in DummySourceDirectories: #for dir in DummySourceDirectories:
# tagDiff = 1 # tagDiff = 1
# dummySourceDir = DatabaseDirectory + "/" + dir # dummySourceDir = DatabaseDirectory + "/" + dir
# mkPath(log, dummySourceDir) # mkPath(log, dummySourceDir)
# sSrc = open(scriptSrc, "r") # sSrc = open(scriptSrc, "r")
# sDst = open(scriptDst, "w") # sDst = open(scriptDst, "w")
# for line in sSrc: # for line in sSrc:
# newline = line.replace("output_logfile", logFile) # newline = line.replace("output_logfile", logFile)
# newline = newline.replace("dummy_source_directory", dummySourceDir) # newline = newline.replace("dummy_source_directory", dummySourceDir)
# newline = newline.replace("output_directory_tag", outDirTag) # newline = newline.replace("output_directory_tag", outDirTag)
# newline = newline.replace("output_directory_without_coarse_mesh", outDirWithoutCoarse) # newline = newline.replace("output_directory_without_coarse_mesh", outDirWithoutCoarse)
# newline = newline.replace("output_directory_with_coarse_mesh", outDirWithCoarse) # newline = newline.replace("output_directory_with_coarse_mesh", outDirWithCoarse)
# newline = newline.replace("dummy_export_opt_export_lighting", DummyExportOptExportLighting) # newline = newline.replace("dummy_export_opt_export_lighting", DummyExportOptExportLighting)
# newline = newline.replace("dummy_export_opt_shadow", DummyExportOptShadow) # newline = newline.replace("dummy_export_opt_shadow", DummyExportOptShadow)
# newline = newline.replace("dummy_export_opt_lighting_limit", str(DummyExportOptLightingLimit)) # newline = newline.replace("dummy_export_opt_lighting_limit", str(DummyExportOptLightingLimit))
# newline = newline.replace("dummy_export_opt_lumel_size", DummyExportOptLumelSize) # newline = newline.replace("dummy_export_opt_lumel_size", DummyExportOptLumelSize)
# newline = newline.replace("dummy_export_opt_oversampling", str(DummyExportOptOversampling)) # newline = newline.replace("dummy_export_opt_oversampling", str(DummyExportOptOversampling))
# newline = newline.replace("dummy_export_opt_lightmap_log", DummyExportOptLightmapLog) # newline = newline.replace("dummy_export_opt_lightmap_log", DummyExportOptLightmapLog)
# newline = newline.replace("dummy_lightmap_path", outDirLightmap) # newline = newline.replace("dummy_lightmap_path", outDirLightmap)
# newline = newline.replace("output_directory_anim", outDirAnim) # newline = newline.replace("output_directory_anim", outDirAnim)
# sDst.write(newline) # sDst.write(newline)
# sSrc.close() # sSrc.close()
# sDst.close() # sDst.close()
# while tagDiff > 0: # while tagDiff > 0:
# printLog(log, "MAXSCRIPT " + scriptDst) # printLog(log, "MAXSCRIPT " + scriptDst)
# subprocess.call([ Max, "-U", "MAXScript", "dummy_export.ms", "-q", "-mi", "-mip" ]) # subprocess.call([ Max, "-U", "MAXScript", "dummy_export.ms", "-q", "-mi", "-mip" ])
# tagList = findFiles(log, outDirTag, "", ".tag") # tagList = findFiles(log, outDirTag, "", ".tag")
# newTagLen = len(tagList) # newTagLen = len(tagList)
# tagDiff = newTagLen - tagLen # tagDiff = newTagLen - tagLen
# tagLen = newTagLen # tagLen = newTagLen
# printLog(log, "Exported " + str(tagDiff) + " .max files!") # printLog(log, "Exported " + str(tagDiff) + " .max files!")
# tagDiff += hackBdummyTree() # force rerun also when bdummy tree deleted # tagDiff += hackBdummyTree() # force rerun also when bdummy tree deleted
# os.remove(scriptDst) # os.remove(scriptDst)
printLog(log, "") printLog(log, "")
log.close() log.close()
# end of file # end of file

@ -1,96 +1,96 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 2_build.py # \file 2_build.py
# \brief Build dummy # \brief Build dummy
# \date 2010-05-24 13:42GMT # \date 2010-05-24 13:42GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Build dummy # Build dummy
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Build dummy") printLog(log, "--- Build dummy")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Find tools # Find tools
ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix) ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix)
BuildShadowSkin = findTool(log, ToolDirectories, BuildShadowSkinTool, ToolSuffix) BuildShadowSkin = findTool(log, ToolDirectories, BuildShadowSkinTool, ToolSuffix)
BuildClodtex = findTool(log, ToolDirectories, BuildClodtexTool, ToolSuffix) BuildClodtex = findTool(log, ToolDirectories, BuildClodtexTool, ToolSuffix)
LightmapOptimizer = findTool(log, ToolDirectories, LightmapOptimizerTool, ToolSuffix) LightmapOptimizer = findTool(log, ToolDirectories, LightmapOptimizerTool, ToolSuffix)
TgaToDds = findTool(log, ToolDirectories, TgaToDdsTool, ToolSuffix) TgaToDds = findTool(log, ToolDirectories, TgaToDdsTool, ToolSuffix)
BuildCoarseMesh = findTool(log, ToolDirectories, BuildCoarseMeshTool, ToolSuffix) BuildCoarseMesh = findTool(log, ToolDirectories, BuildCoarseMeshTool, ToolSuffix)
#if 1: # todo: CoarseMeshTextureNames length > 0 ... #if 1: # todo: CoarseMeshTextureNames length > 0 ...
# printLog(log, ">>> Build coarse meshes <<<") # printLog(log, ">>> Build coarse meshes <<<")
# dummyWithCoarseMesh = ExportBuildDirectory + "/" + DummyWithCoarseMeshExportDirectory # dummyWithCoarseMesh = ExportBuildDirectory + "/" + DummyWithCoarseMeshExportDirectory
# mkPath(log, dummyWithCoarseMesh) # mkPath(log, dummyWithCoarseMesh)
# dummyWithCoarseMeshBuilded = ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory # dummyWithCoarseMeshBuilded = ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory
# mkPath(log, dummyWithCoarseMeshBuilded) # mkPath(log, dummyWithCoarseMeshBuilded)
# cf = open("confdummy_generated.cfg", "w") # cf = open("confdummy_generated.cfg", "w")
# cf.write("texture_mul_size = " + TextureMulSizeValue + ";\n") # cf.write("texture_mul_size = " + TextureMulSizeValue + ";\n")
# cf.write("\n") # cf.write("\n")
# cf.write("search_path = \n") # cf.write("search_path = \n")
# cf.write("{\n") # cf.write("{\n")
# cf.write("\t\"" + dummyWithCoarseMesh + "\", \n") # cf.write("\t\"" + dummyWithCoarseMesh + "\", \n")
# for dir in MapSourceDirectories: # for dir in MapSourceDirectories:
# cf.write("\t\"" + DatabaseDirectory + "/" + dir + "\", \n") # cf.write("\t\"" + DatabaseDirectory + "/" + dir + "\", \n")
# cf.write("};\n") # cf.write("};\n")
# cf.write("\n") # cf.write("\n")
# cf.write("list_mesh = \n") # cf.write("list_mesh = \n")
# cf.write("{\n") # cf.write("{\n")
# # For each dummy with coarse mesh # # For each dummy with coarse mesh
# files = findFiles(log, dummyWithCoarseMesh, "", ".dummy") # files = findFiles(log, dummyWithCoarseMesh, "", ".dummy")
# for file in files: # for file in files:
# sourceFile = dummyWithCoarseMesh + "/" + file # sourceFile = dummyWithCoarseMesh + "/" + file
# if os.path.isfile(sourceFile): # if os.path.isfile(sourceFile):
# destFile = dummyWithCoarseMeshBuilded + "/" + file # destFile = dummyWithCoarseMeshBuilded + "/" + file
# cf.write("\t\"" + file + "\", \"" + destFile + "\", \n") # cf.write("\t\"" + file + "\", \"" + destFile + "\", \n")
# cf.write("};\n") # cf.write("};\n")
# cf.write("\n") # cf.write("\n")
# cf.write("output_textures = \n") # cf.write("output_textures = \n")
# cf.write("{\n") # cf.write("{\n")
# # For each dummy with coarse mesh # # For each dummy with coarse mesh
# for tn in CoarseMeshTextureNames: # for tn in CoarseMeshTextureNames:
# cf.write("\t\"" + dummyWithCoarseMesh + "/" + tn + ".tga\", \n") # cf.write("\t\"" + dummyWithCoarseMesh + "/" + tn + ".tga\", \n")
# cf.write("};\n") # cf.write("};\n")
# cf.close() # cf.close()
# subprocess.call([ BuildCoarseMesh, "confdummy_generated.cfg" ]) # subprocess.call([ BuildCoarseMesh, "confdummy_generated.cfg" ])
# os.remove("confdummy_generated.cfg") # os.remove("confdummy_generated.cfg")
# for tn in CoarseMeshTextureNames: # for tn in CoarseMeshTextureNames:
# subprocess.call([ TgaToDds, dummyWithCoarseMesh + "/" + tn + ".tga", "-o", dummyWithCoarseMeshBuilded + "/" + tn + ".dds", "-a", "5" ]) # subprocess.call([ TgaToDds, dummyWithCoarseMesh + "/" + tn + ".tga", "-o", dummyWithCoarseMeshBuilded + "/" + tn + ".dds", "-a", "5" ])
log.close() log.close()
# end of file # end of file

@ -1,63 +1,63 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 3_install.py # \file 3_install.py
# \brief Install dummy # \brief Install dummy
# \date 2010-05-24 13:42GMT # \date 2010-05-24 13:42GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Install dummy # Install dummy
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite_local import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Install dummy") printLog(log, "--- Install dummy")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
#installPath = InstallDirectory + "/" + DummyInstallDirectory #installPath = InstallDirectory + "/" + DummyInstallDirectory
#mkPath(log, installPath) #mkPath(log, installPath)
printLog(log, ">>> Install dummy <<<") printLog(log, ">>> Install dummy <<<")
#mkPath(log, ExportBuildDirectory + "/" + DummyExportDirectory) #mkPath(log, ExportBuildDirectory + "/" + DummyExportDirectory)
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyExportDirectory, installPath, ".dummy") #copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyExportDirectory, installPath, ".dummy")
#mkPath(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory) #mkPath(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory)
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory, installPath, ".dummy") #copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory, installPath, ".dummy")
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory, installPath, ".dds") #copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory, installPath, ".dds")
#mkPath(log, ExportBuildDirectory + "/" + DummyAnimExportDirectory) #mkPath(log, ExportBuildDirectory + "/" + DummyAnimExportDirectory)
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyAnimExportDirectory, installPath, ".anim") #copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyAnimExportDirectory, installPath, ".anim")
printLog(log, "") printLog(log, "")
log.close() log.close()
# end of file # end of file

@ -1,98 +1,98 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 0_setup.py # \file 0_setup.py
# \brief setup ai_wmap # \brief setup ai_wmap
# \date 2010-05-24 13:42GMT # \date 2010-05-24 13:42GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Setup ai_wmap # Setup ai_wmap
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Setup ai_wmap") printLog(log, "--- Setup ai_wmap")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Setup build directories # Setup build directories
printLog(log, ">>> Setup build directories <<<") printLog(log, ">>> Setup build directories <<<")
mkPath(log, ExportBuildDirectory + "/" + RbankOutputBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + RbankOutputBuildDirectory)
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory)
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildTagDirectory) mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildTagDirectory)
# Setup lookup directories # Setup lookup directories
printLog(log, ">>> Setup lookup directories <<<") printLog(log, ">>> Setup lookup directories <<<")
for dir in IgLookupDirectories: for dir in IgLookupDirectories:
mkPath(log, ExportBuildDirectory + "/" + dir) mkPath(log, ExportBuildDirectory + "/" + dir)
for dir in PacsPrimLookupDirectories: for dir in PacsPrimLookupDirectories:
mkPath(log, ExportBuildDirectory + "/" + dir) mkPath(log, ExportBuildDirectory + "/" + dir)
# Setup client directories # Setup client directories
printLog(log, ">>> Setup install directories <<<") printLog(log, ">>> Setup install directories <<<")
mkPath(log, InstallDirectory + "/" + AiWmapInstallDirectory) mkPath(log, InstallDirectory + "/" + AiWmapInstallDirectory)
# Setup client directories # Setup client directories
printLog(log, ">>> Setup configuration <<<") printLog(log, ">>> Setup configuration <<<")
mkPath(log, InstallDirectory + "/" + AiWmapInstallDirectory) mkPath(log, InstallDirectory + "/" + AiWmapInstallDirectory)
mkPath(log, ActiveProjectDirectory + "/generated") mkPath(log, ActiveProjectDirectory + "/generated")
cfg = open(ActiveProjectDirectory + "/generated/ai_build_wmap.cfg", "w") cfg = open(ActiveProjectDirectory + "/generated/ai_build_wmap.cfg", "w")
cfg.write("\n") cfg.write("\n")
cfg.write("// AI BUILD WMAP CONFIGURATION\n") cfg.write("// AI BUILD WMAP CONFIGURATION\n")
cfg.write("\n") cfg.write("\n")
cfg.write("Paths = {\n") cfg.write("Paths = {\n")
for dir in IgLookupDirectories: for dir in IgLookupDirectories:
cfg.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n") cfg.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
cfg.write("\t\"" + ExportBuildDirectory + "/" + RbankOutputBuildDirectory + "\", \n") cfg.write("\t\"" + ExportBuildDirectory + "/" + RbankOutputBuildDirectory + "\", \n")
cfg.write("\t\"" + LeveldesignDirectory + "\", \n") cfg.write("\t\"" + LeveldesignDirectory + "\", \n")
cfg.write("};\n") cfg.write("};\n")
cfg.write("\n") cfg.write("\n")
cfg.write("NoRecursePaths = { };\n") cfg.write("NoRecursePaths = { };\n")
cfg.write("\n") cfg.write("\n")
cfg.write("PacsPrimPaths = {\n") cfg.write("PacsPrimPaths = {\n")
for dir in PacsPrimLookupDirectories: for dir in PacsPrimLookupDirectories:
cfg.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n") cfg.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
cfg.write("};\n") cfg.write("};\n")
cfg.write("\n") cfg.write("\n")
cfg.write("OutputPath = \"" + ExportBuildDirectory + "/" + AiWmapBuildDirectory + "\";\n") cfg.write("OutputPath = \"" + ExportBuildDirectory + "/" + AiWmapBuildDirectory + "\";\n")
cfg.write("\n") cfg.write("\n")
cfg.write("Commands = {\n") cfg.write("Commands = {\n")
cfg.write("\t\"Verbose " + str(AiWmapVerbose) + "\", \n") cfg.write("\t\"Verbose " + str(AiWmapVerbose) + "\", \n")
for startPoint in AiWmapStartPoints: for startPoint in AiWmapStartPoints:
cfg.write("\t\"setStartPoint " + startPoint + "\", \n") cfg.write("\t\"setStartPoint " + startPoint + "\", \n")
cfg.write("};\n") cfg.write("};\n")
cfg.write("\n") cfg.write("\n")
cfg.close() cfg.close()
log.close() log.close()
# end of file # end of file

@ -1,49 +1,49 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 1_export.py # \file 1_export.py
# \brief Export ai_wmap # \brief Export ai_wmap
# \date 2010-05-24 13:42GMT # \date 2010-05-24 13:42GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Export ai_wmap # Export ai_wmap
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Export ai_wmap") printLog(log, "--- Export ai_wmap")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
log.close() log.close()
# end of file # end of file

@ -1,95 +1,97 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 2_build.py # \file 2_build.py
# \brief Build ai_wmap # \brief Build ai_wmap
# \date 2010-05-24 13:42GMT # \date 2010-05-24 13:42GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Build ai_wmap # Build ai_wmap
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Build ai_wmap") printLog(log, "--- Build ai_wmap")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Find tools # Find tools
AiBuildWmap = findTool(log, ToolDirectories, AiBuildWmapTool, ToolSuffix) AiBuildWmap = findTool(log, ToolDirectories, AiBuildWmapTool, ToolSuffix)
TgaCut = findTool(log, ToolDirectories, TgaCutTool, ToolSuffix) TgaCut = findTool(log, ToolDirectories, TgaCutTool, ToolSuffix)
if AiBuildWmap == "": if AiBuildWmap == "":
toolLogFail(log, AiBuildWmapTool, ToolSuffix) toolLogFail(log, AiBuildWmapTool, ToolSuffix)
if TgaCut == "": if TgaCut == "":
toolLogFail(log, TgaCutTool, ToolSuffix) toolLogFail(log, TgaCutTool, ToolSuffix)
else: else:
printLog(log, ">>> Copy ai_build_wmap.cfg <<<") printLog(log, ">>> Copy ai_build_wmap.cfg <<<")
cfgPath = ActiveProjectDirectory + "/generated/ai_build_wmap.cfg" cfgPath = ActiveProjectDirectory + "/generated/ai_build_wmap.cfg"
tagPath = ExportBuildDirectory + "/" + AiWmapBuildTagDirectory + "/ai_wmap_build.tag" tagPath = ExportBuildDirectory + "/" + AiWmapBuildTagDirectory + "/ai_wmap_build.tag"
shutil.copy(cfgPath, "ai_build_wmap.cfg") shutil.copy(cfgPath, "ai_build_wmap.cfg")
printLog(log, ">>> Check up packed sheets <<<") printLog(log, ">>> Check up packed sheets <<<")
subprocess.call([ AiBuildWmap, "checkPackedSheets" ]) subprocess.call([ AiBuildWmap, "checkPackedSheets" ])
printLog(log, ">>> Build ai_wmap <<<") printLog(log, ">>> Build ai_wmap <<<")
mkPath(log, ExportBuildDirectory + "/" + RbankOutputBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + RbankOutputBuildDirectory)
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory)
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildTagDirectory) mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildTagDirectory)
if (needUpdate(log, "continents.packed_sheets", tagPath) or needUpdateMultiDirNoSubdirFile(log, ExportBuildDirectory, [ RbankOutputBuildDirectory ] + IgLookupDirectories + PacsPrimLookupDirectories, tagPath)): if (needUpdate(log, "continents.packed_sheets", tagPath) or needUpdateMultiDirNoSubdirFile(log, ExportBuildDirectory, [ RbankOutputBuildDirectory ] + IgLookupDirectories + PacsPrimLookupDirectories, tagPath)):
printLog(log, ">>> Generate wmap <<<") printLog(log, ">>> Generate wmap <<<")
subprocess.call([ AiBuildWmap, "pacsCrunch " + AiWmapContinentName ]) subprocess.call([ AiBuildWmap, "pacsCrunch " + AiWmapContinentName ])
printLog(log, ">>> Generate sized wmap <<<") printLog(log, ">>> Generate sized wmap <<<")
subprocess.call([ AiBuildWmap, "pacsBuildGabarit " + AiWmapContinentName ]) subprocess.call([ AiBuildWmap, "pacsBuildGabarit " + AiWmapContinentName ])
printLog(log, ">>> Generate cwmaps for each size <<<") printLog(log, ">>> Generate cwmaps for each size <<<")
subprocess.call([ AiBuildWmap, "pacsBuildWmap " + AiWmapContinentName + "_0" ]) callParallelProcess([ AiBuildWmap, "pacsBuildWmap " + AiWmapContinentName + "_0" ])
subprocess.call([ AiBuildWmap, "pacsBuildWmap " + AiWmapContinentName + "_1" ]) callParallelProcess([ AiBuildWmap, "pacsBuildWmap " + AiWmapContinentName + "_1" ])
subprocess.call([ AiBuildWmap, "pacsBuildWmap " + AiWmapContinentName + "_2" ]) callParallelProcess([ AiBuildWmap, "pacsBuildWmap " + AiWmapContinentName + "_2" ])
printLog(log, ">>> Generate bitmap for each size <<<") flushParallelProcesses()
subprocess.call([ AiBuildWmap, "pacsBuildBitmap " + AiWmapContinentName + "_0" ]) printLog(log, ">>> Generate bitmap for each size <<<")
subprocess.call([ AiBuildWmap, "pacsBuildBitmap " + AiWmapContinentName + "_1" ]) callParallelProcess([ AiBuildWmap, "pacsBuildBitmap " + AiWmapContinentName + "_0" ])
subprocess.call([ AiBuildWmap, "pacsBuildBitmap " + AiWmapContinentName + "_2" ]) callParallelProcess([ AiBuildWmap, "pacsBuildBitmap " + AiWmapContinentName + "_1" ])
printLog(log, ">>> Clear height maps for size 1 and 2 <<<") callParallelProcess([ AiBuildWmap, "pacsBuildBitmap " + AiWmapContinentName + "_2" ])
subprocess.call([ AiBuildWmap, "pacsClearHeightmap " + AiWmapContinentName ]) flushParallelProcesses()
printLog(log, ">>> Cut tga for world editor <<<") printLog(log, ">>> Clear height maps for size 1 and 2 <<<")
subprocess.call([ TgaCut, ExportBuildDirectory + "/" + AiWmapBuildDirectory + "/" + AiWmapContinentName + "_0.tga" ]) subprocess.call([ AiBuildWmap, "pacsClearHeightmap " + AiWmapContinentName ])
moveFilesExtNoTree(log, ".", ExportBuildDirectory + "/" + AiWmapBuildDirectory, ".tga") printLog(log, ">>> Cut tga for world editor <<<")
printLog(log, ">>> Remove wmap <<<") subprocess.call([ TgaCut, ExportBuildDirectory + "/" + AiWmapBuildDirectory + "/" + AiWmapContinentName + "_0.tga" ])
removeFilesRecursiveExt(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory, ".wmap") moveFilesExtNoTree(log, ".", ExportBuildDirectory + "/" + AiWmapBuildDirectory, ".tga")
tagFile = open(tagPath, "w") printLog(log, ">>> Remove wmap <<<")
tagFile.write(time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())) + "\n") removeFilesRecursiveExt(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory, ".wmap")
tagFile.close() tagFile = open(tagPath, "w")
else: tagFile.write(time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())) + "\n")
printLog(log, "SKIP *") tagFile.close()
printLog(log, "") else:
printLog(log, "SKIP *")
log.close() printLog(log, "")
log.close()
# end of file
# end of file

@ -1,57 +1,57 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 3_install.py # \file 3_install.py
# \brief Install ai_wmap # \brief Install ai_wmap
# \date 2010-05-24 13:42GMT # \date 2010-05-24 13:42GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Install ai_wmap # Install ai_wmap
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite_local import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Install ai_wmap") printLog(log, "--- Install ai_wmap")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
installPath = InstallDirectory + "/" + AiWmapInstallDirectory installPath = InstallDirectory + "/" + AiWmapInstallDirectory
mkPath(log, installPath) mkPath(log, installPath)
printLog(log, ">>> Install ai_wmap <<<") printLog(log, ">>> Install ai_wmap <<<")
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory)
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory, installPath) copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory, installPath)
printLog(log, "") printLog(log, "")
log.close() log.close()
# end of file # end of file

@ -1,66 +1,66 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 0_setup.py # \file 0_setup.py
# \brief Setup anim # \brief Setup anim
# \date 2009-03-10 14:56GMT # \date 2009-03-10 14:56GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Setup anim # Setup anim
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Setup anim") printLog(log, "--- Setup anim")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Setup source directories # Setup source directories
printLog(log, ">>> Setup source directories <<<") printLog(log, ">>> Setup source directories <<<")
for dir in AnimSourceDirectories: for dir in AnimSourceDirectories:
mkPath(log, DatabaseDirectory + "/" + dir) mkPath(log, DatabaseDirectory + "/" + dir)
# Setup export directories # Setup export directories
printLog(log, ">>> Setup export directories <<<") printLog(log, ">>> Setup export directories <<<")
mkPath(log, ExportBuildDirectory + "/" + AnimExportDirectory) mkPath(log, ExportBuildDirectory + "/" + AnimExportDirectory)
# Setup build directories # Setup build directories
printLog(log, ">>> Setup build directories <<<") printLog(log, ">>> Setup build directories <<<")
mkPath(log, ExportBuildDirectory + "/" + AnimBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + AnimBuildDirectory)
# Setup client directories # Setup client directories
printLog(log, ">>> Setup client directories <<<") printLog(log, ">>> Setup client directories <<<")
mkPath(log, InstallDirectory + "/" + AnimInstallDirectory) mkPath(log, InstallDirectory + "/" + AnimInstallDirectory)
log.close() log.close()
# end of file # end of file

@ -1,139 +1,139 @@
#!/usr/bin/python #!/usr/bin/python
# #
# ################################################################# # #################################################################
# ## WARNING : this is a generated file, don't change it ! # ## WARNING : this is a generated file, don't change it !
# ################################################################# # #################################################################
# #
# \file 1_export.py # \file 1_export.py
# \brief Export anim # \brief Export anim
# \date 2015-01-06-16-31-GMT # \date 2015-01-06-16-31-GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Export anim # Export anim
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
if os.path.isfile("temp_log.log"): if os.path.isfile("temp_log.log"):
os.remove("temp_log.log") os.remove("temp_log.log")
log = open("temp_log.log", "w") log = open("temp_log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Export anim") printLog(log, "--- Export anim")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Find tools # Find tools
# ... # ...
# Export anim 3dsmax # Export anim 3dsmax
if MaxAvailable: if MaxAvailable:
# Find tools # Find tools
Max = findMax(log, MaxDirectory, MaxExecutable) Max = findMax(log, MaxDirectory, MaxExecutable)
printLog(log, "") printLog(log, "")
printLog(log, ">>> Export anim 3dsmax <<<") printLog(log, ">>> Export anim 3dsmax <<<")
mkPath(log, ExportBuildDirectory + "/" + AnimExportDirectory) mkPath(log, ExportBuildDirectory + "/" + AnimExportDirectory)
mkPath(log, ExportBuildDirectory + "/" + AnimTagExportDirectory) mkPath(log, ExportBuildDirectory + "/" + AnimTagExportDirectory)
for dir in AnimSourceDirectories: for dir in AnimSourceDirectories:
mkPath(log, DatabaseDirectory + "/" + dir) mkPath(log, DatabaseDirectory + "/" + dir)
if (needUpdateDirByTagLog(log, DatabaseDirectory + "/" + dir, ".max", ExportBuildDirectory + "/" + AnimTagExportDirectory, ".max.tag")): if (needUpdateDirByTagLog(log, DatabaseDirectory + "/" + dir, ".max", ExportBuildDirectory + "/" + AnimTagExportDirectory, ".max.tag")):
scriptSrc = "maxscript/anim_export.ms" scriptSrc = "maxscript/anim_export.ms"
scriptDst = MaxUserDirectory + "/scripts/anim_export.ms" scriptDst = MaxUserDirectory + "/scripts/anim_export.ms"
outputLogfile = ScriptDirectory + "/processes/anim/log.log" outputLogfile = ScriptDirectory + "/processes/anim/log.log"
outputDirectory = ExportBuildDirectory + "/" + AnimExportDirectory outputDirectory = ExportBuildDirectory + "/" + AnimExportDirectory
tagDirectory = ExportBuildDirectory + "/" + AnimTagExportDirectory tagDirectory = ExportBuildDirectory + "/" + AnimTagExportDirectory
maxSourceDir = DatabaseDirectory + "/" + dir maxSourceDir = DatabaseDirectory + "/" + dir
maxRunningTagFile = tagDirectory + "/max_running.tag" maxRunningTagFile = tagDirectory + "/max_running.tag"
tagList = findFiles(log, tagDirectory, "", ".max.tag") tagList = findFiles(log, tagDirectory, "", ".max.tag")
tagLen = len(tagList) tagLen = len(tagList)
if os.path.isfile(scriptDst): if os.path.isfile(scriptDst):
os.remove(scriptDst) os.remove(scriptDst)
tagDiff = 1 tagDiff = 1
sSrc = open(scriptSrc, "r") sSrc = open(scriptSrc, "r")
sDst = open(scriptDst, "w") sDst = open(scriptDst, "w")
for line in sSrc: for line in sSrc:
newline = line.replace("%OutputLogfile%", outputLogfile) newline = line.replace("%OutputLogfile%", outputLogfile)
newline = newline.replace("%MaxSourceDirectory%", maxSourceDir) newline = newline.replace("%MaxSourceDirectory%", maxSourceDir)
newline = newline.replace("%OutputDirectory%", outputDirectory) newline = newline.replace("%OutputDirectory%", outputDirectory)
newline = newline.replace("%TagDirectory%", tagDirectory) newline = newline.replace("%TagDirectory%", tagDirectory)
sDst.write(newline) sDst.write(newline)
sSrc.close() sSrc.close()
sDst.close() sDst.close()
zeroRetryLimit = 3 zeroRetryLimit = 3
while tagDiff > 0: while tagDiff > 0:
mrt = open(maxRunningTagFile, "w") mrt = open(maxRunningTagFile, "w")
mrt.write("moe-moe-kyun") mrt.write("moe-moe-kyun")
mrt.close() mrt.close()
printLog(log, "MAXSCRIPT " + scriptDst) printLog(log, "MAXSCRIPT " + scriptDst)
subprocess.call([ Max, "-U", "MAXScript", "anim_export.ms", "-q", "-mi", "-mip" ]) subprocess.call([ Max, "-U", "MAXScript", "anim_export.ms", "-q", "-mi", "-mip" ])
if os.path.exists(outputLogfile): if os.path.exists(outputLogfile):
try: try:
lSrc = open(outputLogfile, "r") lSrc = open(outputLogfile, "r")
for line in lSrc: for line in lSrc:
lineStrip = line.strip() lineStrip = line.strip()
if (len(lineStrip) > 0): if (len(lineStrip) > 0):
printLog(log, lineStrip) printLog(log, lineStrip)
lSrc.close() lSrc.close()
os.remove(outputLogfile) os.remove(outputLogfile)
except Exception: except Exception:
printLog(log, "ERROR Failed to read 3dsmax log") printLog(log, "ERROR Failed to read 3dsmax log")
else: else:
printLog(log, "WARNING No 3dsmax log") printLog(log, "WARNING No 3dsmax log")
tagList = findFiles(log, tagDirectory, "", ".max.tag") tagList = findFiles(log, tagDirectory, "", ".max.tag")
newTagLen = len(tagList) newTagLen = len(tagList)
tagDiff = newTagLen - tagLen tagDiff = newTagLen - tagLen
tagLen = newTagLen tagLen = newTagLen
addTagDiff = 0 addTagDiff = 0
if os.path.exists(maxRunningTagFile): if os.path.exists(maxRunningTagFile):
printLog(log, "FAIL 3ds Max crashed and/or file export failed!") printLog(log, "FAIL 3ds Max crashed and/or file export failed!")
if tagDiff == 0: if tagDiff == 0:
if zeroRetryLimit > 0: if zeroRetryLimit > 0:
zeroRetryLimit = zeroRetryLimit - 1 zeroRetryLimit = zeroRetryLimit - 1
addTagDiff = 1 addTagDiff = 1
else: else:
printLog(log, "FAIL Retry limit reached!") printLog(log, "FAIL Retry limit reached!")
else: else:
addTagDiff = 1 addTagDiff = 1
os.remove(maxRunningTagFile) os.remove(maxRunningTagFile)
printLog(log, "Exported " + str(tagDiff) + " .max files!") printLog(log, "Exported " + str(tagDiff) + " .max files!")
tagDiff += addTagDiff tagDiff += addTagDiff
os.remove(scriptDst) os.remove(scriptDst)
printLog(log, "") printLog(log, "")
log.close() log.close()
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
shutil.move("temp_log.log", "log.log") shutil.move("temp_log.log", "log.log")
# end of file # end of file

@ -1,70 +1,70 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 2_build.py # \file 2_build.py
# \brief Build anim # \brief Build anim
# \date 2009-03-10 13:13GMT # \date 2009-03-10 13:13GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Build anim # Build anim
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Build anim") printLog(log, "--- Build anim")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Find tools # Find tools
AnimBuilder = findTool(log, ToolDirectories, AnimBuilderTool, ToolSuffix) AnimBuilder = findTool(log, ToolDirectories, AnimBuilderTool, ToolSuffix)
printLog(log, "") printLog(log, "")
# For each anim directory # For each anim directory
printLog(log, ">>> Build anim <<<") printLog(log, ">>> Build anim <<<")
if AnimBuilder == "": if AnimBuilder == "":
toolLogFail(log, AnimBuilderTool, ToolSuffix) toolLogFail(log, AnimBuilderTool, ToolSuffix)
else: else:
srcDir = ExportBuildDirectory + "/" + AnimExportDirectory srcDir = ExportBuildDirectory + "/" + AnimExportDirectory
mkPath(log, srcDir) mkPath(log, srcDir)
destDir = ExportBuildDirectory + "/" + AnimBuildDirectory destDir = ExportBuildDirectory + "/" + AnimBuildDirectory
mkPath(log, destDir) mkPath(log, destDir)
if DoOptimizeAnimations: if DoOptimizeAnimations:
printLog(log, ">>> Optimizing animations <<<") printLog(log, ">>> Optimizing animations <<<")
subprocess.call([ AnimBuilder, srcDir, destDir, ActiveProjectDirectory + "/anim_builder.cfg" ]) subprocess.call([ AnimBuilder, srcDir, destDir, ActiveProjectDirectory + "/anim_builder.cfg" ])
else: else:
printLog(log, ">>> Not optimizing animations <<<") printLog(log, ">>> Not optimizing animations <<<")
copyFilesNoTreeIfNeeded(log, srcDir, destDir) copyFilesNoTreeIfNeeded(log, srcDir, destDir)
printLog(log, "") printLog(log, "")
log.close() log.close()
# end of file # end of file

@ -1,57 +1,57 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 3_install.py # \file 3_install.py
# \brief Install anim # \brief Install anim
# \date 2009-03-10 13:13GMT # \date 2009-03-10 13:13GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Install anim # Install anim
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite_local import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Install anim") printLog(log, "--- Install anim")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
printLog(log, ">>> Install anim <<<") printLog(log, ">>> Install anim <<<")
srcDir = ExportBuildDirectory + "/" + AnimBuildDirectory srcDir = ExportBuildDirectory + "/" + AnimBuildDirectory
mkPath(log, srcDir) mkPath(log, srcDir)
destDir = InstallDirectory + "/" + AnimInstallDirectory destDir = InstallDirectory + "/" + AnimInstallDirectory
mkPath(log, destDir) mkPath(log, destDir)
copyFilesNoTreeIfNeeded(log, srcDir, destDir) copyFilesNoTreeIfNeeded(log, srcDir, destDir)
printLog(log, "") printLog(log, "")
log.close() log.close()
# end of file # end of file

@ -1,114 +1,120 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 0_setup.py # \file 0_setup.py
# \brief setup cartographer # \brief setup cartographer
# \date 2014-09-13 13:32GMT # \date 2014-09-13 13:32GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Setup cartographer # Setup cartographer
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2014 Jan BOON # Copyright (C) 2014 Jan BOON
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Setup cartographer") printLog(log, "--- Setup cartographer")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Setup build directories # Setup build directories
printLog(log, ">>> Setup build directories <<<") printLog(log, ">>> Setup build directories <<<")
mkPath(log, ExportBuildDirectory + "/" + CartographerBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + CartographerBuildDirectory)
mkPath(log, ExportBuildDirectory + "/" + CartographerMapBuildDirectory)
# Setup lookup directories
printLog(log, ">>> Setup lookup directories <<<") # Setup lookup directories
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory) # IN printLog(log, ">>> Setup lookup directories <<<")
mkPath(log, ExportBuildDirectory + "/" + ZoneLightBuildDirectory) # IN (.zonel) mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory) # IN
mkPath(log, ExportBuildDirectory + "/" + ZoneLightIgLandBuildDirectory) # IN (.ig) mkPath(log, ExportBuildDirectory + "/" + ZoneLightBuildDirectory) # IN (.zonel)
mkPath(log, ExportBuildDirectory + "/" + SmallbankExportDirectory) # IN mkPath(log, ExportBuildDirectory + "/" + ZoneLightIgLandBuildDirectory) # IN (.ig)
mkPath(log, ExportBuildDirectory + "/" + FarbankBuildDirectory) # IN mkPath(log, ExportBuildDirectory + "/" + SmallbankExportDirectory) # IN
mkPath(log, ExportBuildDirectory + "/" + DisplaceExportDirectory) # IN mkPath(log, ExportBuildDirectory + "/" + FarbankBuildDirectory) # IN
mkPath(log, ExportBuildDirectory + "/" + TilesExportDirectory) # IN mkPath(log, ExportBuildDirectory + "/" + DisplaceExportDirectory) # IN
mkPath(log, LeveldesignDataCommonDirectory) # IN mkPath(log, ExportBuildDirectory + "/" + TilesExportDirectory) # IN
mkPath(log, LeveldesignDfnDirectory) # IN mkPath(log, LeveldesignDataCommonDirectory) # IN
mkPath(log, LeveldesignDirectory) # IN mkPath(log, LeveldesignDfnDirectory) # IN
for dir in PropertiesExportBuildSearchPaths: mkPath(log, LeveldesignDirectory) # IN
mkPath(log, ExportBuildDirectory + "/" + dir) for dir in PropertiesExportBuildSearchPaths:
mkPath(log, ExportBuildDirectory + "/" + dir)
# Setup client directories
printLog(log, ">>> Setup install directories <<<") # Setup client directories
mkPath(log, InstallDirectory + "/" + CartographerInstallDirectory) printLog(log, ">>> Setup install directories <<<")
mkPath(log, InstallDirectory + "/" + CartographerInstallDirectory)
# Setup client directories mkPath(log, InstallDirectory + "/" + IslandsInstallDirectory)
printLog(log, ">>> Setup configuration <<<")
mkPath(log, ActiveProjectDirectory + "/generated") # Setup client directories
cfg = open(ActiveProjectDirectory + "/generated/island_screenshots.cfg", "w") printLog(log, ">>> Setup configuration <<<")
cfg.write("\n") mkPath(log, ActiveProjectDirectory + "/generated")
cfg.write("// BUILD CARTOGRAPHER CONFIGURATION\n") cfg = open(ActiveProjectDirectory + "/generated/island_screenshots.cfg", "w")
cfg.write("\n") cfg.write("\n")
cfg.write("SearchPaths = {\n") cfg.write("// BUILD CARTOGRAPHER CONFIGURATION\n")
cfg.write("\t\"" + ExportBuildDirectory + "/" + AiWmapBuildDirectory + "\", \n") cfg.write("\n")
cfg.write("\t\"" + ExportBuildDirectory + "/" + ZoneLightBuildDirectory + "\", \n") cfg.write("SearchPaths = {\n")
cfg.write("\t\"" + ExportBuildDirectory + "/" + ZoneLightIgLandBuildDirectory + "\", \n") cfg.write("\t\"" + ExportBuildDirectory + "/" + AiWmapBuildDirectory + "\", \n")
cfg.write("\t\"" + ExportBuildDirectory + "/" + SmallbankExportDirectory + "\", \n") cfg.write("\t\"" + ExportBuildDirectory + "/" + ZoneLightBuildDirectory + "\", \n")
cfg.write("\t\"" + ExportBuildDirectory + "/" + FarbankBuildDirectory + "\", \n") cfg.write("\t\"" + ExportBuildDirectory + "/" + ZoneLightIgLandBuildDirectory + "\", \n")
cfg.write("\t\"" + ExportBuildDirectory + "/" + DisplaceExportDirectory + "\", \n") cfg.write("\t\"" + ExportBuildDirectory + "/" + SmallbankExportDirectory + "\", \n")
cfg.write("\t\"" + ExportBuildDirectory + "/" + TilesExportDirectory + "\", \n") cfg.write("\t\"" + ExportBuildDirectory + "/" + FarbankBuildDirectory + "\", \n")
cfg.write("\t\"" + LeveldesignDataCommonDirectory + "\", \n") cfg.write("\t\"" + ExportBuildDirectory + "/" + DisplaceExportDirectory + "\", \n")
cfg.write("\t\"" + LeveldesignDfnDirectory + "\", \n") cfg.write("\t\"" + ExportBuildDirectory + "/" + TilesExportDirectory + "\", \n")
cfg.write("\t\"" + LeveldesignDirectory + "\", \n") cfg.write("\t\"" + LeveldesignDataCommonDirectory + "\", \n")
for dir in PropertiesExportBuildSearchPaths: cfg.write("\t\"" + LeveldesignDfnDirectory + "\", \n")
cfg.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n") cfg.write("\t\"" + LeveldesignDirectory + "\", \n")
cfg.write("};\n") for dir in PropertiesExportBuildSearchPaths:
cfg.write("\n") cfg.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
cfg.write("OutDir = \"" + ExportBuildDirectory + "/" + CartographerBuildDirectory + "\";\n") cfg.write("};\n")
cfg.write("\n") cfg.write("\n")
cfg.write("Continents = {\n") cfg.write("OutDir = \"" + ExportBuildDirectory + "/" + CartographerBuildDirectory + "\";\n")
cfg.write("\t\"" + CartographerContinent + "\", \n") cfg.write("\n")
cfg.write("};\n") cfg.write("Continents = {\n")
cfg.write("\n") cfg.write("\t\"" + CartographerContinent + "\", \n")
cfg.write("SeasonSuffixes = {\n") cfg.write("};\n")
for suffix in MultipleTilesPostfix: cfg.write("\n")
cfg.write("\t\"" + suffix + "\", \n") cfg.write("SeasonSuffixes = {\n")
cfg.write("};\n") if CartographerSeasonSuffixes:
cfg.write("\n") for suffix in CartographerSeasonSuffixes:
cfg.write("InverseZTest = true;\n") cfg.write("\t\"" + suffix + "\", \n")
cfg.write("Vegetation = true;\n") else:
cfg.write("MeterPixelSize = 2;\n") for suffix in MultipleTilesPostfix:
cfg.write("\n") cfg.write("\t\"" + suffix + "\", \n")
cfg.write("CompleteIslandsFile = \"r2_islands.xml\";\n") cfg.write("};\n")
cfg.write("EntryPointsFile = \"r2_entry_points.txt\";\n") cfg.write("\n")
cfg.write("\n") cfg.write("InverseZTest = true;\n")
cfg.close() cfg.write("Vegetation = true;\n")
cfg.write("MeterPixelSize = 2;\n")
log.close() cfg.write("\n")
cfg.write("CompleteIslandsFile = \"" + ExportBuildDirectory + "/" + CartographerBuildDirectory + "/" + IslandsXmlFile + "\";\n")
cfg.write("EntryPointsFile = \"r2_entry_points.txt\";\n")
# end of file cfg.write("\n")
cfg.close()
log.close()
# end of file

@ -1,49 +1,49 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 1_export.py # \file 1_export.py
# \brief Export cartographer # \brief Export cartographer
# \date 2014-09-13 13:32GMT # \date 2014-09-13 13:32GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Export cartographer # Export cartographer
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2014 Jan BOON # Copyright (C) 2014 Jan BOON
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Export cartographer") printLog(log, "--- Export cartographer")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
log.close() log.close()
# end of file # end of file

@ -1,62 +1,87 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 2_build.py # \file 2_build.py
# \brief Build cartographer # \brief Build cartographer
# \date 2014-09-13 13:32GMT # \date 2014-09-13 13:32GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Build cartographer # Build cartographer
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2014 Jan BOON # Copyright (C) 2014 Jan BOON
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Build cartographer") printLog(log, "--- Build cartographer")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Find tools # Find tools
R2IslandsTextures = findTool(log, ToolDirectories, R2IslandsTexturesTool, ToolSuffix) R2IslandsTextures = findTool(log, ToolDirectories, R2IslandsTexturesTool, ToolSuffix)
TgaToDds = findTool(log, ToolDirectories, TgaToDdsTool, ToolSuffix)
if R2IslandsTextures == "":
toolLogFail(log, R2IslandsTexturesTool, ToolSuffix) if R2IslandsTextures == "":
else: toolLogFail(log, R2IslandsTexturesTool, ToolSuffix)
printLog(log, ">>> Copy island_screenshots.cfg <<<") else:
cfgPath = ActiveProjectDirectory + "/generated/island_screenshots.cfg" printLog(log, ">>> Copy island_screenshots.cfg <<<")
shutil.copy(cfgPath, "island_screenshots.cfg") cfgPath = ActiveProjectDirectory + "/generated/island_screenshots.cfg"
printLog(log, ">>> Build cartographer <<<") shutil.copy(cfgPath, "island_screenshots.cfg")
subprocess.call([ R2IslandsTextures ]) printLog(log, ">>> Build cartographer <<<")
printLog(log, "") mkPath(log, ExportBuildDirectory + "/" + CartographerBuildDirectory)
subprocess.call([ R2IslandsTextures ])
log.close() printLog(log, "")
printLog(log, ">>> Compress cartographer maps to DDS <<<")
# end of file if TgaToDds == "":
toolLogFail(log, TgaToDdsTool, ToolSuffix)
else:
destPath = ExportBuildDirectory + "/" + CartographerMapBuildDirectory
mkPath(log, destPath)
sourcePath = ExportBuildDirectory + "/" + CartographerBuildDirectory
mkPath(log, sourcePath)
files = os.listdir(sourcePath)
len_tga_png = len(".tga")
len_dds = len(".dds")
for fileName in files:
if isLegalFileName(fileName):
sourceFile = sourcePath + "/" + fileName
if os.path.isfile(sourceFile):
if (fileName[-len_tga_png:].lower() == ".tga") or (fileName[-len_tga_png:].lower() == ".png"):
destFile = destPath + "/" + os.path.basename(fileName)[0:-len_tga_png] + ".dds"
if needUpdateLogRemoveDest(log, sourceFile, destFile):
subprocess.call([ TgaToDds, sourceFile, "-o", destFile, "-m" ])
elif not os.path.isdir(sourceFile):
printLog(log, "FAIL ?! file not dir or file ?! " + sourceFile)
printLog(log, "")
log.close()
# end of file

@ -1,57 +1,66 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 3_install.py # \file 3_install.py
# \brief Install cartographer # \brief Install cartographer
# \date 2014-09-13 13:32GMT # \date 2014-09-13 13:32GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Install cartographer # Install cartographer
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2014 Jan BOON # Copyright (C) 2014 Jan BOON
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite_local import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Install cartographer") printLog(log, "--- Install cartographer")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
installPath = InstallDirectory + "/" + CartographerInstallDirectory
mkPath(log, installPath) installPath = InstallDirectory + "/" + CartographerInstallDirectory
islandsInstallPath = InstallDirectory + "/" + IslandsInstallDirectory
printLog(log, ">>> Install cartographer <<<")
mkPath(log, ExportBuildDirectory + "/" + CartographerBuildDirectory)
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + CartographerBuildDirectory, installPath) printLog(log, ">>> Install cartographer <<<")
printLog(log, "") mkPath(log, ExportBuildDirectory + "/" + CartographerMapBuildDirectory)
log.close() mkPath(log, installPath)
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + CartographerMapBuildDirectory, installPath, ".dds")
# end of file mkPath(log, ExportBuildDirectory + "/" + CartographerBuildDirectory)
mkPath(log, islandsInstallPath)
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + CartographerBuildDirectory, islandsInstallPath, ".xml")
printLog(log, "")
log.close()
# end of file

@ -1,65 +1,65 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 0_setup.py # \file 0_setup.py
# \brief Setup cegui # \brief Setup cegui
# \date 2009-03-14-17-46-GMT # \date 2009-03-14-17-46-GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Setup cegui # Setup cegui
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Setup cegui") printLog(log, "--- Setup cegui")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Setup source directories # Setup source directories
printLog(log, ">>> Setup source directories <<<") printLog(log, ">>> Setup source directories <<<")
for dir in CeguiImagesetSourceDirectories: for dir in CeguiImagesetSourceDirectories:
mkPath(log, DatabaseDirectory + "/" + dir) mkPath(log, DatabaseDirectory + "/" + dir)
# Setup export directories # Setup export directories
printLog(log, ">>> Setup export directories <<<") printLog(log, ">>> Setup export directories <<<")
mkPath(log, ExportBuildDirectory + "/" + CeguiImagesetExportDirectory) mkPath(log, ExportBuildDirectory + "/" + CeguiImagesetExportDirectory)
# Setup build directories # Setup build directories
printLog(log, ">>> Setup build directories <<<") printLog(log, ">>> Setup build directories <<<")
mkPath(log, ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory)
# Setup client directories # Setup client directories
printLog(log, ">>> Setup client directories <<<") printLog(log, ">>> Setup client directories <<<")
mkPath(log, InstallDirectory + "/" + CeguiImagesetInstallDirectory) mkPath(log, InstallDirectory + "/" + CeguiImagesetInstallDirectory)
log.close() log.close()
# end of file # end of file

@ -1,67 +1,67 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 1_export.py # \file 1_export.py
# \brief Export cegui # \brief Export cegui
# \date 2009-03-14-17-46-GMT # \date 2009-03-14-17-46-GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Export cegui # Export cegui
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Export cegui") printLog(log, "--- Export cegui")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# For each cegui imageset directory # For each cegui imageset directory
printLog(log, ">>> Export cegui imagesets <<<") printLog(log, ">>> Export cegui imagesets <<<")
destDir = ExportBuildDirectory + "/" + CeguiImagesetExportDirectory destDir = ExportBuildDirectory + "/" + CeguiImagesetExportDirectory
mkPath(log, destDir) mkPath(log, destDir)
for dir in CeguiImagesetSourceDirectories: for dir in CeguiImagesetSourceDirectories:
srcDir = DatabaseDirectory + "/" + dir srcDir = DatabaseDirectory + "/" + dir
mkPath(log, srcDir) mkPath(log, srcDir)
imagesets = findFiles(log, srcDir, "", ".imageset") imagesets = findFiles(log, srcDir, "", ".imageset")
if (len(imagesets) != 1): if (len(imagesets) != 1):
printLog(log, "FAIL Cannot find *.imageset, folder must contain at least one and only one imageset xml file") printLog(log, "FAIL Cannot find *.imageset, folder must contain at least one and only one imageset xml file")
else: else:
niouname = dir.replace("/", "_") niouname = dir.replace("/", "_")
newpath = destDir + "/" + niouname newpath = destDir + "/" + niouname
mkPath(log, newpath) mkPath(log, newpath)
copyFileIfNeeded(log, srcDir + "/" + imagesets[0], newpath + ".imageset") copyFileIfNeeded(log, srcDir + "/" + imagesets[0], newpath + ".imageset")
copyFilesExtNoTreeIfNeeded(log, srcDir, newpath, ".tga") copyFilesExtNoTreeIfNeeded(log, srcDir, newpath, ".tga")
copyFilesExtNoTreeIfNeeded(log, srcDir, newpath, ".png") copyFilesExtNoTreeIfNeeded(log, srcDir, newpath, ".png")
printLog(log, "") printLog(log, "")
log.close() log.close()
# end of file # end of file

@ -1,67 +1,67 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 2_build.py # \file 2_build.py
# \brief Build cegui # \brief Build cegui
# \date 2009-03-14-17-46-GMT # \date 2009-03-14-17-46-GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Build cegui # Build cegui
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Build cegui") printLog(log, "--- Build cegui")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Find tools # Find tools
BuildImageset = findTool(log, ToolDirectories, BuildImagesetTool, ToolSuffix) BuildImageset = findTool(log, ToolDirectories, BuildImagesetTool, ToolSuffix)
printLog(log, "") printLog(log, "")
# For each cegui imageset directory # For each cegui imageset directory
printLog(log, ">>> Build cegui imagesets <<<") printLog(log, ">>> Build cegui imagesets <<<")
if BuildImageset == "": if BuildImageset == "":
toolLogFail(log, BuildImagesetTool, ToolSuffix) toolLogFail(log, BuildImagesetTool, ToolSuffix)
else: else:
srcDir = ExportBuildDirectory + "/" + CeguiImagesetExportDirectory srcDir = ExportBuildDirectory + "/" + CeguiImagesetExportDirectory
mkPath(log, srcDir) mkPath(log, srcDir)
destDir = ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory destDir = ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory
mkPath(log, destDir) mkPath(log, destDir)
for dir in os.listdir(srcDir): for dir in os.listdir(srcDir):
if (os.path.isdir(srcDir + "/" + dir)) and dir != ".svn" and dir != "*.*": if (os.path.isdir(srcDir + "/" + dir)) and dir != ".svn" and dir != "*.*":
mkPath(log, srcDir + "/" + dir) mkPath(log, srcDir + "/" + dir)
subprocess.call([ BuildImageset, destDir + "/" + dir + ".tga", srcDir + "/" + dir ]) subprocess.call([ BuildImageset, destDir + "/" + dir + ".tga", srcDir + "/" + dir ])
printLog(log, "") printLog(log, "")
log.close() log.close()
# end of file # end of file

@ -1,56 +1,56 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 3_install.py # \file 3_install.py
# \brief Install cegui # \brief Install cegui
# \date 2009-03-14-17-46-GMT # \date 2009-03-14-17-46-GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Install cegui # Install cegui
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite_local import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Install cegui") printLog(log, "--- Install cegui")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
printLog(log, ">>> Install cegui imagesets <<<") printLog(log, ">>> Install cegui imagesets <<<")
srcDir = ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory srcDir = ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory
mkPath(log, srcDir) mkPath(log, srcDir)
destDir = InstallDirectory + "/" + CeguiImagesetInstallDirectory destDir = InstallDirectory + "/" + CeguiImagesetInstallDirectory
mkPath(log, destDir) mkPath(log, destDir)
copyFilesNoTreeIfNeeded(log, srcDir, destDir) copyFilesNoTreeIfNeeded(log, srcDir, destDir)
printLog(log, "") printLog(log, "")
log.close() log.close()
# end of file # end of file

@ -1,87 +1,87 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 0_setup.py # \file 0_setup.py
# \brief Setup clodbank # \brief Setup clodbank
# \date 2009-03-10 14:56GMT # \date 2009-03-10 14:56GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Setup clodbank # Setup clodbank
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Setup clodbank") printLog(log, "--- Setup clodbank")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Setup source directories # Setup source directories
printLog(log, ">>> Setup source directories <<<") printLog(log, ">>> Setup source directories <<<")
for dir in ClodSourceDirectories: for dir in ClodSourceDirectories:
mkPath(log, DatabaseDirectory + "/" + dir) mkPath(log, DatabaseDirectory + "/" + dir)
# Setup export directories # Setup export directories
printLog(log, ">>> Setup export directories <<<") printLog(log, ">>> Setup export directories <<<")
mkPath(log, ExportBuildDirectory + "/" + ClodTagExportDirectory) mkPath(log, ExportBuildDirectory + "/" + ClodTagExportDirectory)
mkPath(log, ExportBuildDirectory + "/" + ClodExportDirectory) mkPath(log, ExportBuildDirectory + "/" + ClodExportDirectory)
mkPath(log, ExportBuildDirectory + "/" + SkelExportDirectory) mkPath(log, ExportBuildDirectory + "/" + SkelExportDirectory)
# Setup build directories # Setup build directories
printLog(log, ">>> Setup build directories <<<") printLog(log, ">>> Setup build directories <<<")
mkPath(log, ExportBuildDirectory + "/" + ClodBankBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + ClodBankBuildDirectory)
mkPath(log, ExportBuildDirectory + "/" + AnimBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + AnimBuildDirectory)
# Setup client directories # Setup client directories
printLog(log, ">>> Setup client directories <<<") printLog(log, ">>> Setup client directories <<<")
mkPath(log, InstallDirectory + "/" + ShapeInstallDirectory) mkPath(log, InstallDirectory + "/" + ShapeInstallDirectory)
# Setup configuration files # Setup configuration files
printLog(log, ">>> Setup configuration files <<<") printLog(log, ">>> Setup configuration files <<<")
mkPath(log, ActiveProjectDirectory + "/generated") mkPath(log, ActiveProjectDirectory + "/generated")
cfgOut = open(ActiveProjectDirectory + "/generated/clod_paths.cfg", "w") cfgOut = open(ActiveProjectDirectory + "/generated/clod_paths.cfg", "w")
cfgOut.write("\n") cfgOut.write("\n")
cfgOut.write("// The search pathes, look in the current process\n") cfgOut.write("// The search pathes, look in the current process\n")
cfgOut.write("search_pathes = \n") cfgOut.write("search_pathes = \n")
cfgOut.write("{\n") cfgOut.write("{\n")
cfgOut.write("\t\"" + ExportBuildDirectory + "/" + ClodExportDirectory + "\", \n") cfgOut.write("\t\"" + ExportBuildDirectory + "/" + ClodExportDirectory + "\", \n")
cfgOut.write("\t\"" + ExportBuildDirectory + "/" + SkelExportDirectory + "\", \n") cfgOut.write("\t\"" + ExportBuildDirectory + "/" + SkelExportDirectory + "\", \n")
cfgOut.write("\t\"" + ExportBuildDirectory + "/" + AnimBuildDirectory + "\", \n") cfgOut.write("\t\"" + ExportBuildDirectory + "/" + AnimBuildDirectory + "\", \n")
cfgOut.write("\t\"" + ExportBuildDirectory + "/" + ShapeOptimizedBuildDirectory + "\", \n") cfgOut.write("\t\"" + ExportBuildDirectory + "/" + ShapeOptimizedBuildDirectory + "\", \n")
cfgOut.write("\t\"" + ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory + "\", \n") cfgOut.write("\t\"" + ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory + "\", \n")
cfgOut.write("};\n") cfgOut.write("};\n")
cfgOut.write("\n") cfgOut.write("\n")
cfgOut.close() cfgOut.close()
log.close() log.close()
# end of file # end of file

@ -1,139 +1,139 @@
#!/usr/bin/python #!/usr/bin/python
# #
# ################################################################# # #################################################################
# ## WARNING : this is a generated file, don't change it ! # ## WARNING : this is a generated file, don't change it !
# ################################################################# # #################################################################
# #
# \file 1_export.py # \file 1_export.py
# \brief Export clodbank # \brief Export clodbank
# \date 2015-01-06-16-31-GMT # \date 2015-01-06-16-31-GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Export clodbank # Export clodbank
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
if os.path.isfile("temp_log.log"): if os.path.isfile("temp_log.log"):
os.remove("temp_log.log") os.remove("temp_log.log")
log = open("temp_log.log", "w") log = open("temp_log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Export clodbank") printLog(log, "--- Export clodbank")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Find tools # Find tools
# ... # ...
# Export clodbank 3dsmax # Export clodbank 3dsmax
if MaxAvailable: if MaxAvailable:
# Find tools # Find tools
Max = findMax(log, MaxDirectory, MaxExecutable) Max = findMax(log, MaxDirectory, MaxExecutable)
printLog(log, "") printLog(log, "")
printLog(log, ">>> Export clodbank 3dsmax <<<") printLog(log, ">>> Export clodbank 3dsmax <<<")
mkPath(log, ExportBuildDirectory + "/" + ClodExportDirectory) mkPath(log, ExportBuildDirectory + "/" + ClodExportDirectory)
mkPath(log, ExportBuildDirectory + "/" + ClodTagExportDirectory) mkPath(log, ExportBuildDirectory + "/" + ClodTagExportDirectory)
for dir in ClodSourceDirectories: for dir in ClodSourceDirectories:
mkPath(log, DatabaseDirectory + "/" + dir) mkPath(log, DatabaseDirectory + "/" + dir)
if (needUpdateDirByTagLog(log, DatabaseDirectory + "/" + dir, ".max", ExportBuildDirectory + "/" + ClodTagExportDirectory, ".max.tag")): if (needUpdateDirByTagLog(log, DatabaseDirectory + "/" + dir, ".max", ExportBuildDirectory + "/" + ClodTagExportDirectory, ".max.tag")):
scriptSrc = "maxscript/clod_export.ms" scriptSrc = "maxscript/clod_export.ms"
scriptDst = MaxUserDirectory + "/scripts/clod_export.ms" scriptDst = MaxUserDirectory + "/scripts/clod_export.ms"
outputLogfile = ScriptDirectory + "/processes/clodbank/log.log" outputLogfile = ScriptDirectory + "/processes/clodbank/log.log"
outputDirectory = ExportBuildDirectory + "/" + ClodExportDirectory outputDirectory = ExportBuildDirectory + "/" + ClodExportDirectory
tagDirectory = ExportBuildDirectory + "/" + ClodTagExportDirectory tagDirectory = ExportBuildDirectory + "/" + ClodTagExportDirectory
maxSourceDir = DatabaseDirectory + "/" + dir maxSourceDir = DatabaseDirectory + "/" + dir
maxRunningTagFile = tagDirectory + "/max_running.tag" maxRunningTagFile = tagDirectory + "/max_running.tag"
tagList = findFiles(log, tagDirectory, "", ".max.tag") tagList = findFiles(log, tagDirectory, "", ".max.tag")
tagLen = len(tagList) tagLen = len(tagList)
if os.path.isfile(scriptDst): if os.path.isfile(scriptDst):
os.remove(scriptDst) os.remove(scriptDst)
tagDiff = 1 tagDiff = 1
sSrc = open(scriptSrc, "r") sSrc = open(scriptSrc, "r")
sDst = open(scriptDst, "w") sDst = open(scriptDst, "w")
for line in sSrc: for line in sSrc:
newline = line.replace("%OutputLogfile%", outputLogfile) newline = line.replace("%OutputLogfile%", outputLogfile)
newline = newline.replace("%MaxSourceDirectory%", maxSourceDir) newline = newline.replace("%MaxSourceDirectory%", maxSourceDir)
newline = newline.replace("%OutputDirectory%", outputDirectory) newline = newline.replace("%OutputDirectory%", outputDirectory)
newline = newline.replace("%TagDirectory%", tagDirectory) newline = newline.replace("%TagDirectory%", tagDirectory)
sDst.write(newline) sDst.write(newline)
sSrc.close() sSrc.close()
sDst.close() sDst.close()
zeroRetryLimit = 3 zeroRetryLimit = 3
while tagDiff > 0: while tagDiff > 0:
mrt = open(maxRunningTagFile, "w") mrt = open(maxRunningTagFile, "w")
mrt.write("moe-moe-kyun") mrt.write("moe-moe-kyun")
mrt.close() mrt.close()
printLog(log, "MAXSCRIPT " + scriptDst) printLog(log, "MAXSCRIPT " + scriptDst)
subprocess.call([ Max, "-U", "MAXScript", "clod_export.ms", "-q", "-mi", "-mip" ]) subprocess.call([ Max, "-U", "MAXScript", "clod_export.ms", "-q", "-mi", "-mip" ])
if os.path.exists(outputLogfile): if os.path.exists(outputLogfile):
try: try:
lSrc = open(outputLogfile, "r") lSrc = open(outputLogfile, "r")
for line in lSrc: for line in lSrc:
lineStrip = line.strip() lineStrip = line.strip()
if (len(lineStrip) > 0): if (len(lineStrip) > 0):
printLog(log, lineStrip) printLog(log, lineStrip)
lSrc.close() lSrc.close()
os.remove(outputLogfile) os.remove(outputLogfile)
except Exception: except Exception:
printLog(log, "ERROR Failed to read 3dsmax log") printLog(log, "ERROR Failed to read 3dsmax log")
else: else:
printLog(log, "WARNING No 3dsmax log") printLog(log, "WARNING No 3dsmax log")
tagList = findFiles(log, tagDirectory, "", ".max.tag") tagList = findFiles(log, tagDirectory, "", ".max.tag")
newTagLen = len(tagList) newTagLen = len(tagList)
tagDiff = newTagLen - tagLen tagDiff = newTagLen - tagLen
tagLen = newTagLen tagLen = newTagLen
addTagDiff = 0 addTagDiff = 0
if os.path.exists(maxRunningTagFile): if os.path.exists(maxRunningTagFile):
printLog(log, "FAIL 3ds Max crashed and/or file export failed!") printLog(log, "FAIL 3ds Max crashed and/or file export failed!")
if tagDiff == 0: if tagDiff == 0:
if zeroRetryLimit > 0: if zeroRetryLimit > 0:
zeroRetryLimit = zeroRetryLimit - 1 zeroRetryLimit = zeroRetryLimit - 1
addTagDiff = 1 addTagDiff = 1
else: else:
printLog(log, "FAIL Retry limit reached!") printLog(log, "FAIL Retry limit reached!")
else: else:
addTagDiff = 1 addTagDiff = 1
os.remove(maxRunningTagFile) os.remove(maxRunningTagFile)
printLog(log, "Exported " + str(tagDiff) + " .max files!") printLog(log, "Exported " + str(tagDiff) + " .max files!")
tagDiff += addTagDiff tagDiff += addTagDiff
os.remove(scriptDst) os.remove(scriptDst)
printLog(log, "") printLog(log, "")
log.close() log.close()
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
shutil.move("temp_log.log", "log.log") shutil.move("temp_log.log", "log.log")
# end of file # end of file

@ -1,68 +1,68 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 2_build.py # \file 2_build.py
# \brief Build clodbank # \brief Build clodbank
# \date 2009-03-10 13:13GMT # \date 2009-03-10 13:13GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Build clodbank # Build clodbank
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Build clodbank") printLog(log, "--- Build clodbank")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Find tools # Find tools
BuildClodBank = findTool(log, ToolDirectories, BuildClodBankTool, ToolSuffix) BuildClodBank = findTool(log, ToolDirectories, BuildClodBankTool, ToolSuffix)
printLog(log, "") printLog(log, "")
# Build clodbank # Build clodbank
printLog(log, ">>> Build clodbank <<<") printLog(log, ">>> Build clodbank <<<")
if BuildClodBank == "": if BuildClodBank == "":
toolLogFail(log, BuildClodBankTool, ToolSuffix) toolLogFail(log, BuildClodBankTool, ToolSuffix)
else: else:
srcDir = ExportBuildDirectory + "/" + ClodExportDirectory srcDir = ExportBuildDirectory + "/" + ClodExportDirectory
mkPath(log, srcDir) mkPath(log, srcDir)
destDir = ExportBuildDirectory + "/" + ClodBankBuildDirectory destDir = ExportBuildDirectory + "/" + ClodBankBuildDirectory
mkPath(log, destDir) mkPath(log, destDir)
mkPath(log, ActiveProjectDirectory + "/generated") mkPath(log, ActiveProjectDirectory + "/generated")
destFile = destDir + "/" + ClodBankFileName destFile = destDir + "/" + ClodBankFileName
configFile = DatabaseDirectory + "/" + ClodConfigFile configFile = DatabaseDirectory + "/" + ClodConfigFile
subprocess.call([ BuildClodBank, ActiveProjectDirectory + "/generated/clod_paths.cfg", configFile, destFile ]) subprocess.call([ BuildClodBank, ActiveProjectDirectory + "/generated/clod_paths.cfg", configFile, destFile ])
printLog(log, "") printLog(log, "")
log.close() log.close()
# end of file # end of file

@ -1,57 +1,57 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 3_install.py # \file 3_install.py
# \brief Install clodbank # \brief Install clodbank
# \date 2009-03-10 13:13GMT # \date 2009-03-10 13:13GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Install clodbank # Install clodbank
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite_local import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Install clodbank") printLog(log, "--- Install clodbank")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
printLog(log, ">>> Install clodbank <<<") printLog(log, ">>> Install clodbank <<<")
srcDir = ExportBuildDirectory + "/" + ClodBankBuildDirectory srcDir = ExportBuildDirectory + "/" + ClodBankBuildDirectory
mkPath(log, srcDir) mkPath(log, srcDir)
destDir = InstallDirectory + "/" + ShapeInstallDirectory destDir = InstallDirectory + "/" + ShapeInstallDirectory
mkPath(log, destDir) mkPath(log, destDir)
copyFilesNoTreeIfNeeded(log, srcDir, destDir) copyFilesNoTreeIfNeeded(log, srcDir, destDir)
printLog(log, "") printLog(log, "")
log.close() log.close()
# end of file # end of file

@ -1,76 +1,76 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 0_setup.py # \file 0_setup.py
# \brief setup copy # \brief setup copy
# \date 2010-05-24 13:42GMT # \date 2010-05-24 13:42GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Setup copy # Setup copy
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Setup copy") printLog(log, "--- Setup copy")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Setup source directories # Setup source directories
printLog(log, ">>> Setup source directories <<<") printLog(log, ">>> Setup source directories <<<")
for dir in CopyDirectSourceDirectories: for dir in CopyDirectSourceDirectories:
mkPath(log, dir) mkPath(log, dir)
for file in CopyDirectSourceFiles: for file in CopyDirectSourceFiles:
mkPath(log, os.path.dirname(file)) mkPath(log, os.path.dirname(file))
for dir in CopyLeveldesignSourceDirectories: for dir in CopyLeveldesignSourceDirectories:
mkPath(log, LeveldesignDirectory + "/" + dir) mkPath(log, LeveldesignDirectory + "/" + dir)
for file in CopyLeveldesignSourceFiles: for file in CopyLeveldesignSourceFiles:
mkPath(log, os.path.dirname(LeveldesignDirectory + "/" + file)) mkPath(log, os.path.dirname(LeveldesignDirectory + "/" + file))
for dir in CopyLeveldesignWorldSourceDirectories: for dir in CopyLeveldesignWorldSourceDirectories:
mkPath(log, LeveldesignWorldDirectory + "/" + dir) mkPath(log, LeveldesignWorldDirectory + "/" + dir)
for file in CopyLeveldesignWorldSourceFiles: for file in CopyLeveldesignWorldSourceFiles:
mkPath(log, os.path.dirname(LeveldesignWorldDirectory + "/" + file)) mkPath(log, os.path.dirname(LeveldesignWorldDirectory + "/" + file))
for dir in CopyLeveldesignDfnSourceDirectories: for dir in CopyLeveldesignDfnSourceDirectories:
mkPath(log, LeveldesignDfnDirectory + "/" + dir) mkPath(log, LeveldesignDfnDirectory + "/" + dir)
for file in CopyLeveldesignDfnSourceFiles: for file in CopyLeveldesignDfnSourceFiles:
mkPath(log, os.path.dirname(LeveldesignDfnDirectory + "/" + file)) mkPath(log, os.path.dirname(LeveldesignDfnDirectory + "/" + file))
for dir in CopyDatabaseSourceDirectories: for dir in CopyDatabaseSourceDirectories:
mkPath(log, DatabaseDirectory + "/" + dir) mkPath(log, DatabaseDirectory + "/" + dir)
for file in CopyDatabaseSourceFiles: for file in CopyDatabaseSourceFiles:
mkPath(log, os.path.dirname(DatabaseDirectory + "/" + file)) mkPath(log, os.path.dirname(DatabaseDirectory + "/" + file))
# Setup client directories # Setup client directories
printLog(log, ">>> Setup client directories <<<") printLog(log, ">>> Setup client directories <<<")
mkPath(log, InstallDirectory + "/" + CopyInstallDirectory) mkPath(log, InstallDirectory + "/" + CopyInstallDirectory)
log.close() log.close()
# end of file # end of file

@ -1,49 +1,49 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 1_export.py # \file 1_export.py
# \brief Export copy # \brief Export copy
# \date 2010-05-24 13:42GMT # \date 2010-05-24 13:42GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Export copy # Export copy
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Export copy") printLog(log, "--- Export copy")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
log.close() log.close()
# end of file # end of file

@ -1,49 +1,49 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 2_build.py # \file 2_build.py
# \brief Build copy # \brief Build copy
# \date 2010-05-24 13:42GMT # \date 2010-05-24 13:42GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Build copy # Build copy
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Build copy") printLog(log, "--- Build copy")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
log.close() log.close()
# end of file # end of file

@ -1,85 +1,85 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 3_install.py # \file 3_install.py
# \brief Install copy # \brief Install copy
# \date 2010-05-24 13:42GMT # \date 2010-05-24 13:42GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Install copy # Install copy
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite_local import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Install copy") printLog(log, "--- Install copy")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
installPath = InstallDirectory + "/" + CopyInstallDirectory installPath = InstallDirectory + "/" + CopyInstallDirectory
mkPath(log, installPath) mkPath(log, installPath)
printLog(log, ">>> Install copy <<<") printLog(log, ">>> Install copy <<<")
for dir in CopyDirectSourceDirectories: for dir in CopyDirectSourceDirectories:
copyFilesRecursiveNoTreeIfNeeded(log, dir, installPath) copyFilesRecursiveNoTreeIfNeeded(log, dir, installPath)
for file in CopyDirectSourceFiles: for file in CopyDirectSourceFiles:
copyFileIfNeeded(log, file, installPath + "/" + os.path.basename(file)) copyFileIfNeeded(log, file, installPath + "/" + os.path.basename(file))
for dir in CopyLeveldesignSourceDirectories: for dir in CopyLeveldesignSourceDirectories:
copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignDirectory + "/" + dir, installPath) copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignDirectory + "/" + dir, installPath)
for file in CopyLeveldesignSourceFiles: for file in CopyLeveldesignSourceFiles:
copyFileIfNeeded(log, LeveldesignDirectory + "/" + file, installPath + "/" + os.path.basename(file)) copyFileIfNeeded(log, LeveldesignDirectory + "/" + file, installPath + "/" + os.path.basename(file))
for dir in CopyLeveldesignWorldSourceDirectories: for dir in CopyLeveldesignWorldSourceDirectories:
copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignWorldDirectory + "/" + dir, installPath) copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignWorldDirectory + "/" + dir, installPath)
for file in CopyLeveldesignWorldSourceFiles: for file in CopyLeveldesignWorldSourceFiles:
copyFileIfNeeded(log, LeveldesignWorldDirectory + "/" + file, installPath + "/" + os.path.basename(file)) copyFileIfNeeded(log, LeveldesignWorldDirectory + "/" + file, installPath + "/" + os.path.basename(file))
for dir in CopyLeveldesignDfnSourceDirectories: for dir in CopyLeveldesignDfnSourceDirectories:
copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignDfnDirectory + "/" + dir, installPath) copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignDfnDirectory + "/" + dir, installPath)
for file in CopyLeveldesignDfnSourceFiles: for file in CopyLeveldesignDfnSourceFiles:
copyFileIfNeeded(log, LeveldesignDfnDirectory + "/" + file, installPath + "/" + os.path.basename(file)) copyFileIfNeeded(log, LeveldesignDfnDirectory + "/" + file, installPath + "/" + os.path.basename(file))
for dir in CopyDatabaseSourceDirectories: for dir in CopyDatabaseSourceDirectories:
copyFilesRecursiveNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, installPath) copyFilesRecursiveNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, installPath)
for file in CopyDatabaseSourceFiles: for file in CopyDatabaseSourceFiles:
copyFileIfNeeded(log, DatabaseDirectory + "/" + file, installPath + "/" + os.path.basename(file)) copyFileIfNeeded(log, DatabaseDirectory + "/" + file, installPath + "/" + os.path.basename(file))
try: try:
CopyWindowsExeDllCfgSourceFiles CopyWindowsExeDllCfgSourceFiles
except NameError: except NameError:
CopyWindowsExeDllCfgSourceFiles = [ ] CopyWindowsExeDllCfgSourceFiles = [ ]
for file in CopyWindowsExeDllCfgSourceFiles: for file in CopyWindowsExeDllCfgSourceFiles:
filePath = findFileMultiDir(log, WindowsExeDllCfgDirectories, file) filePath = findFileMultiDir(log, WindowsExeDllCfgDirectories, file)
if (filePath != ""): if (filePath != ""):
copyFileIfNeeded(log, filePath, installPath + "/" + os.path.basename(file)) copyFileIfNeeded(log, filePath, installPath + "/" + os.path.basename(file))
printLog(log, "") printLog(log, "")
log.close() log.close()
# end of file # end of file

@ -1,65 +1,65 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 0_setup.py # \file 0_setup.py
# \brief Setup displace # \brief Setup displace
# \date 2009-03-10-21-45-GMT # \date 2009-03-10-21-45-GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Setup displace # Setup displace
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Setup displace") printLog(log, "--- Setup displace")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Setup source directories # Setup source directories
printLog(log, ">>> Setup source directories <<<") printLog(log, ">>> Setup source directories <<<")
for dir in DisplaceSourceDirectories: for dir in DisplaceSourceDirectories:
mkPath(log, DatabaseDirectory + "/" + dir) mkPath(log, DatabaseDirectory + "/" + dir)
# Setup export directories # Setup export directories
printLog(log, ">>> Setup export directories <<<") printLog(log, ">>> Setup export directories <<<")
mkPath(log, ExportBuildDirectory + "/" + DisplaceExportDirectory) mkPath(log, ExportBuildDirectory + "/" + DisplaceExportDirectory)
# Setup build directories # Setup build directories
printLog(log, ">>> Setup build directories <<<") printLog(log, ">>> Setup build directories <<<")
# Setup client directories # Setup client directories
printLog(log, ">>> Setup client directories <<<") printLog(log, ">>> Setup client directories <<<")
mkPath(log, InstallDirectory + "/" + DisplaceInstallDirectory) mkPath(log, InstallDirectory + "/" + DisplaceInstallDirectory)
log.close() log.close()
# end of file # end of file

@ -1,55 +1,55 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 1_export.py # \file 1_export.py
# \brief Export displace # \brief Export displace
# \date 2009-03-10-21-45-GMT # \date 2009-03-10-21-45-GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Export displace # Export displace
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Export displace") printLog(log, "--- Export displace")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
mkPath(log, ExportBuildDirectory + "/" + DisplaceExportDirectory) mkPath(log, ExportBuildDirectory + "/" + DisplaceExportDirectory)
for dir in DisplaceSourceDirectories: for dir in DisplaceSourceDirectories:
mkPath(log, DatabaseDirectory + "/" + dir) mkPath(log, DatabaseDirectory + "/" + dir)
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + DisplaceExportDirectory, ".tga") copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + DisplaceExportDirectory, ".tga")
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + DisplaceExportDirectory, ".png") copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + DisplaceExportDirectory, ".png")
log.close() log.close()
# end of file # end of file

@ -1,49 +1,49 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 2_build.py # \file 2_build.py
# \brief Build displace # \brief Build displace
# \date 2009-03-10-21-45-GMT # \date 2009-03-10-21-45-GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Build displace # Build displace
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Build displace") printLog(log, "--- Build displace")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
log.close() log.close()
# end of file # end of file

@ -1,57 +1,57 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 3_install.py # \file 3_install.py
# \brief Install displace # \brief Install displace
# \date 2009-03-10-21-45-GMT # \date 2009-03-10-21-45-GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Install displace # Install displace
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite_local import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Install displace") printLog(log, "--- Install displace")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
printLog(log, ">>> Install displace <<<") printLog(log, ">>> Install displace <<<")
installPath = InstallDirectory + "/" + DisplaceInstallDirectory installPath = InstallDirectory + "/" + DisplaceInstallDirectory
mkPath(log, installPath) mkPath(log, installPath)
mkPath(log, ExportBuildDirectory + "/" + DisplaceExportDirectory) mkPath(log, ExportBuildDirectory + "/" + DisplaceExportDirectory)
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DisplaceExportDirectory, installPath, ".tga") copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DisplaceExportDirectory, installPath, ".tga")
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DisplaceExportDirectory, installPath, ".png") copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DisplaceExportDirectory, installPath, ".png")
printLog(log, "") printLog(log, "")
log.close() log.close()
# end of file # end of file

@ -1,66 +1,66 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 0_setup.py # \file 0_setup.py
# \brief setup farbank # \brief setup farbank
# \date 2009-03-10-21-12-GMT # \date 2009-03-10-21-12-GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Setup farbank # Setup farbank
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Setup farbank") printLog(log, "--- Setup farbank")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Setup source directories # Setup source directories
printLog(log, ">>> Setup source directories <<<") printLog(log, ">>> Setup source directories <<<")
for postfix in MultipleTilesPostfix: for postfix in MultipleTilesPostfix:
mkPath(log, DatabaseDirectory + "/" + TileRootSourceDirectory + postfix) mkPath(log, DatabaseDirectory + "/" + TileRootSourceDirectory + postfix)
# Setup export directories # Setup export directories
printLog(log, ">>> Setup export directories <<<") printLog(log, ">>> Setup export directories <<<")
mkPath(log, ExportBuildDirectory + "/" + SmallbankExportDirectory) mkPath(log, ExportBuildDirectory + "/" + SmallbankExportDirectory)
# Setup build directories # Setup build directories
printLog(log, ">>> Setup build directories <<<") printLog(log, ">>> Setup build directories <<<")
mkPath(log, ExportBuildDirectory + "/" + FarbankBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + FarbankBuildDirectory)
# Setup client directories # Setup client directories
printLog(log, ">>> Setup client directories <<<") printLog(log, ">>> Setup client directories <<<")
mkPath(log, InstallDirectory + "/" + BankInstallDirectory) mkPath(log, InstallDirectory + "/" + BankInstallDirectory)
log.close() log.close()
# end of file # end of file

@ -1,49 +1,49 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 1_export.py # \file 1_export.py
# \brief Export farbank # \brief Export farbank
# \date 2009-03-10-21-12-GMT # \date 2009-03-10-21-12-GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Export farbank # Export farbank
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Export farbank") printLog(log, "--- Export farbank")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
log.close() log.close()
# end of file # end of file

@ -1,74 +1,74 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 2_build.py # \file 2_build.py
# \brief Build farbank # \brief Build farbank
# \date 2009-03-10-21-12-GMT # \date 2009-03-10-21-12-GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Build farbank # Build farbank
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Build farbank") printLog(log, "--- Build farbank")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Find tools # Find tools
ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix) ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix)
BuildFarbank = findTool(log, ToolDirectories, BuildFarbankTool, ToolSuffix) BuildFarbank = findTool(log, ToolDirectories, BuildFarbankTool, ToolSuffix)
printLog(log, "") printLog(log, "")
# For each bank export farbank # For each bank export farbank
printLog(log, ">>> Build farbank <<<") printLog(log, ">>> Build farbank <<<")
if ExecTimeout == "": if ExecTimeout == "":
toolLogFail(log, ExecTimeoutTool, ToolSuffix) toolLogFail(log, ExecTimeoutTool, ToolSuffix)
elif BuildFarbank == "": elif BuildFarbank == "":
toolLogFail(log, BuildFarbankTool, ToolSuffix) toolLogFail(log, BuildFarbankTool, ToolSuffix)
else: else:
mkPath(log, ExportBuildDirectory + "/" + SmallbankExportDirectory) mkPath(log, ExportBuildDirectory + "/" + SmallbankExportDirectory)
mkPath(log, ExportBuildDirectory + "/" + FarbankBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + FarbankBuildDirectory)
files = findFiles(log, ExportBuildDirectory + "/" + SmallbankExportDirectory, "", ".smallbank") files = findFiles(log, ExportBuildDirectory + "/" + SmallbankExportDirectory, "", ".smallbank")
for file in files: for file in files:
sourceFile = ExportBuildDirectory + "/" + SmallbankExportDirectory + "/" + file sourceFile = ExportBuildDirectory + "/" + SmallbankExportDirectory + "/" + file
if os.path.isfile(sourceFile): if os.path.isfile(sourceFile):
for postfix in MultipleTilesPostfix: for postfix in MultipleTilesPostfix:
destFile = ExportBuildDirectory + "/" + FarbankBuildDirectory + "/" + file[0:-len(".smallbank")] + postfix + ".farbank" destFile = ExportBuildDirectory + "/" + FarbankBuildDirectory + "/" + file[0:-len(".smallbank")] + postfix + ".farbank"
if (needUpdateLogRemoveDest(log, sourceFile, destFile)): if (needUpdateLogRemoveDest(log, sourceFile, destFile)):
mkPath(log, DatabaseDirectory + "/" + TileRootSourceDirectory + postfix) mkPath(log, DatabaseDirectory + "/" + TileRootSourceDirectory + postfix)
subprocess.call([ ExecTimeout, str(FarbankBuildTimeout), BuildFarbank, sourceFile, destFile, "-d" + DatabaseDirectory + "/" + TileRootSourceDirectory + postfix + "/", "-p" + postfix ]) subprocess.call([ ExecTimeout, str(FarbankBuildTimeout), BuildFarbank, sourceFile, destFile, "-d" + DatabaseDirectory + "/" + TileRootSourceDirectory + postfix + "/", "-p" + postfix ])
printLog(log, "") printLog(log, "")
log.close() log.close()
# end of file # end of file

@ -1,55 +1,55 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 3_install.py # \file 3_install.py
# \brief Install farbank # \brief Install farbank
# \date 2009-03-10-21-12-GMT # \date 2009-03-10-21-12-GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Install farbank # Install farbank
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite_local import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Install farbank") printLog(log, "--- Install farbank")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
printLog(log, ">>> Install farbank <<<") printLog(log, ">>> Install farbank <<<")
mkPath(log, ExportBuildDirectory + "/" + FarbankBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + FarbankBuildDirectory)
mkPath(log, InstallDirectory + "/" + BankInstallDirectory) mkPath(log, InstallDirectory + "/" + BankInstallDirectory)
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + FarbankBuildDirectory, InstallDirectory + "/" + BankInstallDirectory, ".farbank") copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + FarbankBuildDirectory, InstallDirectory + "/" + BankInstallDirectory, ".farbank")
printLog(log, "") printLog(log, "")
log.close() log.close()
# end of file # end of file

@ -1,65 +1,65 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 0_setup.py # \file 0_setup.py
# \brief setup font # \brief setup font
# \date 2009-03-10-19-43-GMT # \date 2009-03-10-19-43-GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# setup font # setup font
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Setup font") printLog(log, "--- Setup font")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Setup source directories # Setup source directories
printLog(log, ">>> Setup source directories <<<") printLog(log, ">>> Setup source directories <<<")
for dir in FontSourceDirectories: for dir in FontSourceDirectories:
mkPath(log, DatabaseDirectory + "/" + dir) mkPath(log, DatabaseDirectory + "/" + dir)
# Setup export directories # Setup export directories
printLog(log, ">>> Setup export directories <<<") printLog(log, ">>> Setup export directories <<<")
mkPath(log, ExportBuildDirectory + "/" + FontExportDirectory) mkPath(log, ExportBuildDirectory + "/" + FontExportDirectory)
# Setup build directories # Setup build directories
printLog(log, ">>> Setup build directories <<<") printLog(log, ">>> Setup build directories <<<")
# Setup client directories # Setup client directories
printLog(log, ">>> Setup client directories <<<") printLog(log, ">>> Setup client directories <<<")
mkPath(log, InstallDirectory + "/" + FontInstallDirectory) mkPath(log, InstallDirectory + "/" + FontInstallDirectory)
log.close() log.close()
# end of file # end of file

@ -1,62 +1,63 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 1_export.py # \file 1_export.py
# \brief Export font # \brief Export font
# \date 2009-03-10-19-43-GMT # \date 2009-03-10-19-43-GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Export font # Export font
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Export font") printLog(log, "--- Export font")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
printLog(log, ">>> Export font <<<") printLog(log, ">>> Export font <<<")
fontExportDir = ExportBuildDirectory + "/" + FontExportDirectory fontExportDir = ExportBuildDirectory + "/" + FontExportDirectory
mkPath(log, fontExportDir) mkPath(log, fontExportDir)
for dir in FontSourceDirectories: for dir in FontSourceDirectories:
mkPath(log, DatabaseDirectory + "/" + dir) mkPath(log, DatabaseDirectory + "/" + dir)
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, fontExportDir, ".ttf") copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, fontExportDir, ".ttf")
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, fontExportDir, ".afm") copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, fontExportDir, ".otf")
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, fontExportDir, ".pfb") copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, fontExportDir, ".afm")
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, fontExportDir, ".pfm") copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, fontExportDir, ".pfb")
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, fontExportDir, ".pfm")
printLog(log, "")
printLog(log, "")
log.close()
log.close()
# end of file
# end of file

@ -1,51 +1,51 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 2_build.py # \file 2_build.py
# \brief Build font # \brief Build font
# \date 2009-03-10-19-43-GMT # \date 2009-03-10-19-43-GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Build font # Build font
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Build font") printLog(log, "--- Build font")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
printLog(log, "") printLog(log, "")
log.close() log.close()
# end of file # end of file

@ -1,61 +1,62 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 3_install.py # \file 3_install.py
# \brief Install font # \brief Install font
# \date 2009-03-10-19-43-GMT # \date 2009-03-10-19-43-GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Install font # Install font
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite_local import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Install font") printLog(log, "--- Install font")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
installPath = InstallDirectory + "/" + FontInstallDirectory installPath = InstallDirectory + "/" + FontInstallDirectory
mkPath(log, installPath) mkPath(log, installPath)
fontExportDir = ExportBuildDirectory + "/" + FontExportDirectory fontExportDir = ExportBuildDirectory + "/" + FontExportDirectory
mkPath(log, fontExportDir) mkPath(log, fontExportDir)
printLog(log, ">>> Install font <<<") printLog(log, ">>> Install font <<<")
copyFilesExtNoTreeIfNeeded(log, fontExportDir, installPath, ".ttf") copyFilesExtNoTreeIfNeeded(log, fontExportDir, installPath, ".ttf")
copyFilesExtNoTreeIfNeeded(log, fontExportDir, installPath, ".afm") copyFilesExtNoTreeIfNeeded(log, fontExportDir, installPath, ".otf")
copyFilesExtNoTreeIfNeeded(log, fontExportDir, installPath, ".pfb") copyFilesExtNoTreeIfNeeded(log, fontExportDir, installPath, ".afm")
copyFilesExtNoTreeIfNeeded(log, fontExportDir, installPath, ".pfm") copyFilesExtNoTreeIfNeeded(log, fontExportDir, installPath, ".pfb")
copyFilesExtNoTreeIfNeeded(log, fontExportDir, installPath, ".pfm")
printLog(log, "")
log.close() printLog(log, "")
log.close()
# end of file
# end of file

@ -1,78 +1,78 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 0_setup.py # \file 0_setup.py
# \brief setup ig # \brief setup ig
# \date 2010-05-24 13:42GMT # \date 2010-05-24 13:42GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Setup ig # Setup ig
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Setup ig") printLog(log, "--- Setup ig")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Setup source directories # Setup source directories
printLog(log, ">>> Setup source directories <<<") printLog(log, ">>> Setup source directories <<<")
for dir in IgLandSourceDirectories: for dir in IgLandSourceDirectories:
mkPath(log, DatabaseDirectory + "/" + dir) mkPath(log, DatabaseDirectory + "/" + dir)
for dir in IgOtherSourceDirectories: for dir in IgOtherSourceDirectories:
mkPath(log, DatabaseDirectory + "/" + dir) mkPath(log, DatabaseDirectory + "/" + dir)
mkPath(log, DatabaseDirectory + "/" + LigoBaseSourceDirectory) mkPath(log, DatabaseDirectory + "/" + LigoBaseSourceDirectory)
# Setup export directories # Setup export directories
printLog(log, ">>> Setup export directories <<<") printLog(log, ">>> Setup export directories <<<")
mkPath(log, ExportBuildDirectory + "/" + IgStaticLandExportDirectory) mkPath(log, ExportBuildDirectory + "/" + IgStaticLandExportDirectory)
mkPath(log, ExportBuildDirectory + "/" + IgStaticOtherExportDirectory) mkPath(log, ExportBuildDirectory + "/" + IgStaticOtherExportDirectory)
mkPath(log, ExportBuildDirectory + "/" + IgStaticTagExportDirectory) mkPath(log, ExportBuildDirectory + "/" + IgStaticTagExportDirectory)
# Setup build directories # Setup build directories
printLog(log, ">>> Setup build directories <<<") printLog(log, ">>> Setup build directories <<<")
mkPath(log, ExportBuildDirectory + "/" + LigoIgLandBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + LigoIgLandBuildDirectory)
mkPath(log, ExportBuildDirectory + "/" + LigoIgOtherBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + LigoIgOtherBuildDirectory)
mkPath(log, ExportBuildDirectory + "/" + IgElevLandPrimBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + IgElevLandPrimBuildDirectory)
mkPath(log, ExportBuildDirectory + "/" + IgElevLandLigoBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + IgElevLandLigoBuildDirectory)
mkPath(log, ExportBuildDirectory + "/" + IgElevLandStaticBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + IgElevLandStaticBuildDirectory)
mkPath(log, ExportBuildDirectory + "/" + IgTempLandMergeBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + IgTempLandMergeBuildDirectory)
mkPath(log, ExportBuildDirectory + "/" + IgLandBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + IgLandBuildDirectory)
mkPath(log, ExportBuildDirectory + "/" + IgOtherBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + IgOtherBuildDirectory)
# Setup client directories # Setup client directories
printLog(log, ">>> Setup client directories <<<") printLog(log, ">>> Setup client directories <<<")
#mkPath(log, InstallDirectory + "/" + IgInstallDirectory) #mkPath(log, InstallDirectory + "/" + IgInstallDirectory)
log.close() log.close()
# end of file # end of file

@ -1,148 +1,148 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 1_export.py # \file 1_export.py
# \brief Export ig # \brief Export ig
# \date 2010-05-24 13:42GMT # \date 2010-05-24 13:42GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Export ig # Export ig
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("../../configuration") sys.path.append("../../configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
if os.path.isfile("temp_log.log"): if os.path.isfile("temp_log.log"):
os.remove("temp_log.log") os.remove("temp_log.log")
log = open("temp_log.log", "w") log = open("temp_log.log", "w")
from scripts import * from scripts import *
from buildsite import * from buildsite import *
from process import * from process import *
from tools import * from tools import *
from directories import * from directories import *
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Export ig") printLog(log, "--- Export ig")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
Max = "" #find later Max = "" #find later
def igExport(sourceDir, targetDir): def igExport(sourceDir, targetDir):
scriptSrc = "maxscript/ig_export.ms" scriptSrc = "maxscript/ig_export.ms"
scriptDst = MaxUserDirectory + "/scripts/ig_export.ms" scriptDst = MaxUserDirectory + "/scripts/ig_export.ms"
outputLogfile = ScriptDirectory + "/processes/ig/log.log" outputLogfile = ScriptDirectory + "/processes/ig/log.log"
tagDirectory = ExportBuildDirectory + "/" + IgStaticTagExportDirectory tagDirectory = ExportBuildDirectory + "/" + IgStaticTagExportDirectory
outputDirectory = ExportBuildDirectory + "/" + targetDir outputDirectory = ExportBuildDirectory + "/" + targetDir
maxSourceDir = DatabaseDirectory + "/" + sourceDir maxSourceDir = DatabaseDirectory + "/" + sourceDir
maxRunningTagFile = tagDirectory + "/max_running.tag" maxRunningTagFile = tagDirectory + "/max_running.tag"
if (needUpdateDirByTagLog(log, maxSourceDir, ".max", tagDirectory, ".max.tag")): if (needUpdateDirByTagLog(log, maxSourceDir, ".max", tagDirectory, ".max.tag")):
tagList = findFiles(log, tagDirectory, "", ".tag") tagList = findFiles(log, tagDirectory, "", ".tag")
tagLen = len(tagList) tagLen = len(tagList)
if os.path.isfile(scriptDst): if os.path.isfile(scriptDst):
os.remove(scriptDst) os.remove(scriptDst)
tagDiff = 1 tagDiff = 1
sSrc = open(scriptSrc, "r") sSrc = open(scriptSrc, "r")
sDst = open(scriptDst, "w") sDst = open(scriptDst, "w")
for line in sSrc: for line in sSrc:
newline = line.replace("%OutputLogfile%", outputLogfile) newline = line.replace("%OutputLogfile%", outputLogfile)
newline = newline.replace("%MaxSourceDirectory%", maxSourceDir) newline = newline.replace("%MaxSourceDirectory%", maxSourceDir)
newline = newline.replace("%OutputDirectory%", outputDirectory) newline = newline.replace("%OutputDirectory%", outputDirectory)
newline = newline.replace("%TagDirectory%", tagDirectory) newline = newline.replace("%TagDirectory%", tagDirectory)
sDst.write(newline) sDst.write(newline)
sSrc.close() sSrc.close()
sDst.close() sDst.close()
zeroRetryLimit = 3 zeroRetryLimit = 3
while tagDiff > 0: while tagDiff > 0:
mrt = open(maxRunningTagFile, "w") mrt = open(maxRunningTagFile, "w")
mrt.write("moe-moe-kyun") mrt.write("moe-moe-kyun")
mrt.close() mrt.close()
printLog(log, "MAXSCRIPT " + scriptDst) printLog(log, "MAXSCRIPT " + scriptDst)
subprocess.call([ Max, "-U", "MAXScript", "ig_export.ms", "-q", "-mi", "-mip" ]) subprocess.call([ Max, "-U", "MAXScript", "ig_export.ms", "-q", "-mi", "-mip" ])
if os.path.exists(outputLogfile): if os.path.exists(outputLogfile):
try: try:
lSrc = open(outputLogfile, "r") lSrc = open(outputLogfile, "r")
for line in lSrc: for line in lSrc:
lineStrip = line.strip() lineStrip = line.strip()
if (len(lineStrip) > 0): if (len(lineStrip) > 0):
printLog(log, lineStrip) printLog(log, lineStrip)
lSrc.close() lSrc.close()
os.remove(outputLogfile) os.remove(outputLogfile)
except Exception: except Exception:
printLog(log, "ERROR Failed to read 3dsmax log") printLog(log, "ERROR Failed to read 3dsmax log")
else: else:
printLog(log, "WARNING No 3dsmax log") printLog(log, "WARNING No 3dsmax log")
tagList = findFiles(log, tagDirectory, "", ".tag") tagList = findFiles(log, tagDirectory, "", ".tag")
newTagLen = len(tagList) newTagLen = len(tagList)
tagDiff = newTagLen - tagLen tagDiff = newTagLen - tagLen
tagLen = newTagLen tagLen = newTagLen
addTagDiff = 0 addTagDiff = 0
if os.path.exists(maxRunningTagFile): if os.path.exists(maxRunningTagFile):
printLog(log, "FAIL 3ds Max crashed and/or file export failed!") printLog(log, "FAIL 3ds Max crashed and/or file export failed!")
if tagDiff == 0: if tagDiff == 0:
if zeroRetryLimit > 0: if zeroRetryLimit > 0:
zeroRetryLimit = zeroRetryLimit - 1 zeroRetryLimit = zeroRetryLimit - 1
addTagDiff = 1 addTagDiff = 1
else: else:
printLog(log, "FAIL Retry limit reached!") printLog(log, "FAIL Retry limit reached!")
else: else:
addTagDiff = 1 addTagDiff = 1
os.remove(maxRunningTagFile) os.remove(maxRunningTagFile)
printLog(log, "Exported " + str(tagDiff) + " .max files!") printLog(log, "Exported " + str(tagDiff) + " .max files!")
tagDiff += addTagDiff tagDiff += addTagDiff
os.remove(scriptDst) os.remove(scriptDst)
return return
if MaxAvailable: if MaxAvailable:
# Find tools # Find tools
Max = findMax(log, MaxDirectory, MaxExecutable) Max = findMax(log, MaxDirectory, MaxExecutable)
# ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix) # ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix)
printLog(log, "") printLog(log, "")
mkPath(log, ExportBuildDirectory + "/" + IgStaticTagExportDirectory) mkPath(log, ExportBuildDirectory + "/" + IgStaticTagExportDirectory)
# Export ig land 3dsmax # Export ig land 3dsmax
printLog(log, ">>> Export ig land 3dsmax <<<") printLog(log, ">>> Export ig land 3dsmax <<<")
mkPath(log, ExportBuildDirectory + "/" + IgStaticLandExportDirectory) mkPath(log, ExportBuildDirectory + "/" + IgStaticLandExportDirectory)
for dir in IgLandSourceDirectories: for dir in IgLandSourceDirectories:
mkPath(log, DatabaseDirectory + "/" + dir) mkPath(log, DatabaseDirectory + "/" + dir)
igExport(dir, IgStaticLandExportDirectory) igExport(dir, IgStaticLandExportDirectory)
printLog(log, "") printLog(log, "")
# Export ig other 3dsmax # Export ig other 3dsmax
printLog(log, ">>> Export ig other 3dsmax <<<") printLog(log, ">>> Export ig other 3dsmax <<<")
mkPath(log, ExportBuildDirectory + "/" + IgStaticOtherExportDirectory) mkPath(log, ExportBuildDirectory + "/" + IgStaticOtherExportDirectory)
for dir in IgOtherSourceDirectories: for dir in IgOtherSourceDirectories:
mkPath(log, DatabaseDirectory + "/" + dir) mkPath(log, DatabaseDirectory + "/" + dir)
igExport(dir, IgStaticOtherExportDirectory) igExport(dir, IgStaticOtherExportDirectory)
printLog(log, "") printLog(log, "")
log.close() log.close()
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
shutil.move("temp_log.log", "log.log") shutil.move("temp_log.log", "log.log")
# end of file # end of file

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save