mirror of
https://bitbucket.org/seefoe/dockerized-swg.git
synced 2026-01-16 23:04:17 -05:00
Added initial groundwork for building dsrc and running gameserver
This commit is contained in:
6
build_dsrc.sh
Executable file
6
build_dsrc.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
basedir=$PWD
|
||||
|
||||
# ensure that repo has been setup
|
||||
$basedir/utils/initial_setup.sh
|
||||
|
||||
@@ -2,7 +2,10 @@
|
||||
basedir=$PWD
|
||||
|
||||
# ensure that repo has been setup
|
||||
$basedir/initial_setup.sh
|
||||
$basedir/utils/initial_setup.sh
|
||||
|
||||
# run the docker image and build the source
|
||||
docker run -v $basedir/src/:/swg/:z swg-compiler
|
||||
|
||||
# copy bins to our gameserver folder
|
||||
cp $basedir/src/build/bin/* $basedir/gameserver/bin/
|
||||
|
||||
3
gameserver/.gitignore
vendored
Normal file
3
gameserver/.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
bin/*
|
||||
data/*
|
||||
logs/*
|
||||
35
gameserver/utils/build_java.sh
Executable file
35
gameserver/utils/build_java.sh
Executable file
@@ -0,0 +1,35 @@
|
||||
#/bin/bash
|
||||
|
||||
DIR="$( dirname "${BASH_SOURCE[0]}" )"
|
||||
|
||||
destination="data/sku.0/sys.server/compiled/game"
|
||||
sourcepath="dsrc/sku.0/sys.server/compiled/game"
|
||||
|
||||
mkdir -p $destination/script
|
||||
|
||||
filenames=$(find $sourcepath -name '*.java')
|
||||
spinstr='|/-\'
|
||||
i=0
|
||||
current=0
|
||||
total=$(ls ${filenames[@]} | wc -l)
|
||||
|
||||
for filename in $filenames; do
|
||||
OFILENAME=${filename/$sourcepath/$destination}
|
||||
OFILENAME=${OFILENAME/java/class}
|
||||
|
||||
if [[ -e $OFILENAME && $filename -nt $OFILENAME ]] || [ ! -e $OFILENAME ]; then
|
||||
result=$(${DIR}/build_java_single.sh $filename 2>&1)
|
||||
fi
|
||||
|
||||
if [[ ! -z $result ]]; then
|
||||
printf "\r$filename\n"
|
||||
printf "$result\n\n"
|
||||
fi
|
||||
|
||||
current=$((current+1))
|
||||
i=$(( (i+1) %4 ))
|
||||
perc=$(bc -l <<< "scale=0; $current*100/$total")
|
||||
printf "\rCompiling java scripts: [${spinstr:$i:1}] $perc%%"
|
||||
done
|
||||
|
||||
echo ""
|
||||
44
gameserver/utils/build_java_multi.sh
Executable file
44
gameserver/utils/build_java_multi.sh
Executable file
@@ -0,0 +1,44 @@
|
||||
#/bin/bash
|
||||
|
||||
DIR="$( dirname "${BASH_SOURCE[0]}" )"
|
||||
|
||||
destination="data/sku.0/sys.server/compiled/game"
|
||||
sourcepath="dsrc/sku.0/sys.server/compiled/game"
|
||||
|
||||
mkdir -p $destination/script
|
||||
|
||||
filenames=$(find $sourcepath -name '*.java')
|
||||
spinstr='|/-\'
|
||||
i=0
|
||||
current=0
|
||||
total=$(ls ${filenames[@]} | wc -l)
|
||||
|
||||
compile () {
|
||||
OFILENAME=${filename/$sourcepath/$destination}
|
||||
OFILENAME=${OFILENAME/java/class}
|
||||
|
||||
if [[ -e $OFILENAME && $filename -nt $OFILENAME ]] || [ ! -e $OFILENAME ]; then
|
||||
result=$(${DIR}/build_java_single.sh $filename 2>&1)
|
||||
fi
|
||||
|
||||
if [[ ! -z $result ]]; then
|
||||
printf "\r$filename\n"
|
||||
printf "$result\n\n"
|
||||
fi
|
||||
}
|
||||
|
||||
for filename in $filenames; do
|
||||
current=$((current+1))
|
||||
i=$(( (i+1) %4 ))
|
||||
perc=$(bc -l <<< "scale=0; $current*100/$total")
|
||||
printf "\rCompiling java scripts : [${spinstr:$i:1}] $perc%%"
|
||||
while [ `jobs | wc -l` -ge 20 ]
|
||||
do
|
||||
sleep 5
|
||||
done
|
||||
compile $filename & done
|
||||
wait
|
||||
|
||||
echo ""
|
||||
|
||||
|
||||
8
gameserver/utils/build_java_single.sh
Executable file
8
gameserver/utils/build_java_single.sh
Executable file
@@ -0,0 +1,8 @@
|
||||
#/bin/bash
|
||||
|
||||
destination="data/sku.0/sys.server/compiled/game"
|
||||
sourcepath="dsrc/sku.0/sys.server/compiled/game"
|
||||
|
||||
mkdir -p $destination/script
|
||||
|
||||
javac -classpath "$destination" -d "$destination" -sourcepath "$sourcepath" -g -deprecation "$1"
|
||||
28
gameserver/utils/build_miff.sh
Executable file
28
gameserver/utils/build_miff.sh
Executable file
@@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
filenames=$(find ./dsrc -name '*.mif')
|
||||
spinstr='|/-\'
|
||||
i=0
|
||||
current=0
|
||||
total=$(ls ${filenames[@]} | wc -l)
|
||||
|
||||
for filename in $filenames; do
|
||||
ofilename=${filename/dsrc/data}
|
||||
ofilename=${ofilename/.mif/.iff}
|
||||
mkdir -p $(dirname $ofilename)
|
||||
|
||||
if [[ -e $ofilename && $filename -nt $ofilename ]] || [ ! -e $ofilename ]; then
|
||||
result=$(./exe/linux/bin/Miff -i "$filename" -o "$ofilename" 2>&1)
|
||||
|
||||
if [[ ! "$result" =~ .*successfully.* ]]; then
|
||||
printf "\r$result\n\n"
|
||||
fi
|
||||
fi
|
||||
|
||||
current=$((current+1))
|
||||
i=$(( (i+1) %4 ))
|
||||
perc=$(bc -l <<< "scale=0; $current*100/$total")
|
||||
printf "\rGenerating IFFs: [${spinstr:$i:1}] $perc%%"
|
||||
done
|
||||
|
||||
echo ""
|
||||
23
gameserver/utils/build_node_list.sh
Executable file
23
gameserver/utils/build_node_list.sh
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/bin/bash
|
||||
|
||||
NODE_COUNT=
|
||||
|
||||
echo 'Generating node list...'
|
||||
|
||||
|
||||
if [ ! -d ./exe/ ]; then
|
||||
mkdir ./exe/
|
||||
mkdir ./exe/linux
|
||||
fi
|
||||
|
||||
read -p "How many nodes are in this cluster? " NODE_COUNT
|
||||
|
||||
echo "[TaskManager]" > ./exe/linux/nodes.cfg
|
||||
|
||||
# For each node, prompt for an ip.
|
||||
for i in $(seq 0 $(expr $NODE_COUNT - 1))
|
||||
do
|
||||
read -p "node$i ip: (Try using what is specified for your hostname in /etc/hosts " CURRENT_NODE_IP
|
||||
echo "node$i=$CURRENT_NODE_IP" >> ./exe/linux/nodes.cfg
|
||||
done
|
||||
|
||||
54
gameserver/utils/build_object_template_crc_string_tables.py
Executable file
54
gameserver/utils/build_object_template_crc_string_tables.py
Executable file
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
from os import walk, path, makedirs
|
||||
from subprocess import PIPE, Popen
|
||||
|
||||
serverdir = './data/sku.0/sys.server/compiled/game/object'
|
||||
shareddir = './data/sku.0/sys.shared/compiled/game/object'
|
||||
|
||||
def read_objects(objectdir):
|
||||
files = []
|
||||
|
||||
for (dirname, dirnames, filenames) in walk(objectdir):
|
||||
for filename in filenames:
|
||||
if '.iff' in filename:
|
||||
objfile = path.join(dirname, filename)
|
||||
objfile = objfile.replace(objectdir.split('/object')[0] + '/', '')
|
||||
|
||||
files.append(objfile)
|
||||
|
||||
return files
|
||||
|
||||
def build_table(type, objs):
|
||||
tabfile = "./dsrc/sku.0/sys.%s/built/game/misc/object_template_crc_string_table.tab" % (type)
|
||||
ifffile = "./data/sku.0/sys.%s/built/game/misc/object_template_crc_string_table.iff" % (type)
|
||||
|
||||
if not path.exists(path.dirname(tabfile)):
|
||||
makedirs(path.dirname(tabfile))
|
||||
|
||||
if not path.exists(path.dirname(ifffile)):
|
||||
makedirs(path.dirname(ifffile))
|
||||
|
||||
crc_call = ['./tools/buildCrcStringTable.pl', '-t', tabfile, ifffile]
|
||||
|
||||
p = Popen(crc_call, stdin=PIPE, stdout=PIPE)
|
||||
|
||||
for obj in sorted(objs):
|
||||
p.stdin.write(obj + '\n')
|
||||
|
||||
p.communicate()
|
||||
|
||||
serverobjs = []
|
||||
sharedobjs = []
|
||||
allobjs = []
|
||||
|
||||
serverobjs.extend(read_objects('./data/sku.0/sys.server/compiled/game/object'))
|
||||
sharedobjs.extend(read_objects('./data/sku.0/sys.shared/compiled/game/object'))
|
||||
sharedobjs.extend(read_objects('./data/sku.0/sys.server/compiled/game/object/creature/player'))
|
||||
|
||||
build_table('client', sharedobjs)
|
||||
|
||||
allobjs.extend(serverobjs)
|
||||
allobjs.extend(sharedobjs)
|
||||
|
||||
build_table('server', list(set(allobjs)))
|
||||
44
gameserver/utils/build_quest_crc_string_tables.py
Executable file
44
gameserver/utils/build_quest_crc_string_tables.py
Executable file
@@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
from os import walk, path, makedirs
|
||||
from subprocess import PIPE, Popen
|
||||
|
||||
def read_objects(objectdir):
|
||||
files = []
|
||||
|
||||
for (dirname, dirnames, filenames) in walk(objectdir):
|
||||
for filename in filenames:
|
||||
filename = filename.replace('.iff', '')
|
||||
|
||||
objfile = path.join(dirname, filename)
|
||||
objfile = objfile.replace("%s/" % objectdir, '')
|
||||
|
||||
files.append(objfile)
|
||||
|
||||
return files
|
||||
|
||||
questlistdir = './data/sku.0/sys.shared/compiled/game/datatables/questlist'
|
||||
|
||||
allobjs = []
|
||||
|
||||
allobjs.extend(read_objects(questlistdir))
|
||||
|
||||
allobjs.sort()
|
||||
|
||||
tabfile = './dsrc/sku.0/sys.shared/built/game/misc/quest_crc_string_table.tab'
|
||||
ifffile = './data/sku.0/sys.shared/built/game/misc/quest_crc_string_table.iff'
|
||||
|
||||
if not path.exists(path.dirname(tabfile)):
|
||||
makedirs(path.dirname(tabfile))
|
||||
|
||||
if not path.exists(path.dirname(ifffile)):
|
||||
makedirs(path.dirname(ifffile))
|
||||
|
||||
crc_call = ['./tools/buildCrcStringTable.pl', '-t', tabfile, ifffile]
|
||||
|
||||
p = Popen(crc_call, stdin=PIPE, stdout=PIPE)
|
||||
|
||||
for obj in allobjs:
|
||||
p.stdin.write(obj + '\n')
|
||||
|
||||
p.communicate()
|
||||
34
gameserver/utils/build_tab.sh
Executable file
34
gameserver/utils/build_tab.sh
Executable file
@@ -0,0 +1,34 @@
|
||||
#!/bin/bash
|
||||
|
||||
server=$(find ./dsrc/sku.0/sys.server/compiled/game/datatables -name '*.tab')
|
||||
inc=$(find ./dsrc/sku.0/sys.shared/compiled/game/datatables/include -name '*.tab')
|
||||
shared=$(find ./dsrc/sku.0/sys.shared/compiled/game/datatables -name '*.tab')
|
||||
|
||||
filenames=("${server[@]}" "${inc[@]}" "${shared[@]}")
|
||||
|
||||
spinstr='|/-\'
|
||||
i=0
|
||||
current=0
|
||||
total=$(ls ${filenames[@]} | wc -l)
|
||||
|
||||
for filename in ${filenames[@]}; do
|
||||
ofilename=${filename/dsrc/data}
|
||||
ofilename=${ofilename/.tab/.iff}
|
||||
mkdir -p $(dirname $ofilename)
|
||||
|
||||
if [[ -e $ofilename && $filename -nt $ofilename ]] || [ ! -e $ofilename ]; then
|
||||
result=$(./exe/linux/bin/DataTableTool -i "$filename" -o "$ofilename" -- -s SharedFile searchPath10=data/sku.0/sys.shared/compiled/game searchPath10=data/sku.0/sys.server/compiled/game 2>&1)
|
||||
|
||||
if [[ ! $result =~ .*SUCCESS.* ]]; then
|
||||
printf "\r$filename\n"
|
||||
printf "$result\n\n"
|
||||
fi
|
||||
fi
|
||||
|
||||
current=$((current+1))
|
||||
i=$(( (i+1) %4 ))
|
||||
perc=$(bc -l <<< "scale=0; $current*100/$total")
|
||||
printf "\rGenerating Datatables: [${spinstr:$i:1}] $perc%%"
|
||||
done
|
||||
|
||||
echo ""
|
||||
42
gameserver/utils/build_tab_multi.sh
Executable file
42
gameserver/utils/build_tab_multi.sh
Executable file
@@ -0,0 +1,42 @@
|
||||
#!/bin/bash
|
||||
|
||||
server=$(find ./dsrc/sku.0/sys.server/compiled/game/datatables -name '*.tab')
|
||||
inc=$(find ./dsrc/sku.0/sys.shared/compiled/game/datatables/include -name '*.tab')
|
||||
shared=$(find ./dsrc/sku.0/sys.shared/compiled/game/datatables -name '*.tab')
|
||||
|
||||
filenames=("${server[@]}" "${inc[@]}" "${shared[@]}")
|
||||
|
||||
spinstr='|/-\'
|
||||
i=0
|
||||
current=0
|
||||
total=$(ls ${filenames[@]} | wc -l)
|
||||
|
||||
compile () {
|
||||
ofilename=${filename/dsrc/data}
|
||||
ofilename=${ofilename/.tab/.iff}
|
||||
mkdir -p $(dirname $ofilename)
|
||||
|
||||
[ -e $ofilename ] && rm "$ofilename"
|
||||
|
||||
result=$(./exe/linux/bin/DataTableTool -i "$filename" -- -s SharedFile searchPath10=data/sku.0/sys.shared/compiled/game searchPath10=data/sku.0/sys.server/compiled/game 2>&1)
|
||||
|
||||
if [[ ! $result =~ .*SUCCESS.* ]]; then
|
||||
printf "\r$filename\n"
|
||||
printf "$result\n\n"
|
||||
fi
|
||||
}
|
||||
|
||||
for filename in ${filenames[@]}; do
|
||||
current=$((current+1))
|
||||
i=$(( (i+1) %4 ))
|
||||
perc=$(bc -l <<< "scale=0; $current*100/$total")
|
||||
printf "\rGenerating Datatables: [${spinstr:$i:1}] $perc%%"
|
||||
while [ `jobs | wc -l` -ge 20 ]
|
||||
do
|
||||
sleep 5
|
||||
done
|
||||
compile $filename & done
|
||||
wait
|
||||
|
||||
echo ""
|
||||
|
||||
8
gameserver/utils/build_tdf.sh
Executable file
8
gameserver/utils/build_tdf.sh
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
basedir=$PWD
|
||||
|
||||
find $basedir/dsrc -name '*.tdf' | while read filename; do
|
||||
echo $filename
|
||||
$basedir/exe/linux/bin/TemplateDefinitionCompiler -compile $filename
|
||||
done
|
||||
29
gameserver/utils/build_tpf.sh
Executable file
29
gameserver/utils/build_tpf.sh
Executable file
@@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
|
||||
filenames=$(find ./dsrc -name '*.tpf')
|
||||
spinstr='|/-\'
|
||||
i=0
|
||||
current=0
|
||||
total=$(find ./dsrc -name '*.tpf' | wc -l)
|
||||
|
||||
for filename in $filenames; do
|
||||
ofilename=${filename/dsrc/data}
|
||||
ofilename=${ofilename/.tpf/.iff}
|
||||
mkdir -p $(dirname $ofilename)
|
||||
|
||||
if [[ -e $ofilename && $filename -nt $ofilename ]] || [ ! -e $ofilename ]; then
|
||||
result=$(./exe/linux/bin/TemplateCompiler -compile "$filename" 2>&1)
|
||||
|
||||
if [[ ! -z $result ]]; then
|
||||
printf "\r$filename\n"
|
||||
printf "$result\n\n"
|
||||
fi
|
||||
fi
|
||||
|
||||
current=$((current+1))
|
||||
i=$(( (i+1) %4 ))
|
||||
perc=$(bc -l <<< "scale=0; $current*100/$total")
|
||||
printf "\rGenerating Object Templates: [${spinstr:$i:1}] $perc%%"
|
||||
done
|
||||
|
||||
echo ""
|
||||
40
gameserver/utils/build_tpf_multi.sh
Executable file
40
gameserver/utils/build_tpf_multi.sh
Executable file
@@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
|
||||
filenames=$(find ./dsrc -name '*.tpf')
|
||||
spinstr='|/-\'
|
||||
i=0
|
||||
current=0
|
||||
total=$(find ./dsrc -name '*.tpf' | wc -l)
|
||||
|
||||
compile () {
|
||||
ofilename=${filename/dsrc/data}
|
||||
ofilename=${ofilename/.tpf/.iff}
|
||||
mkdir -p $(dirname $ofilename)
|
||||
|
||||
if [[ -e $ofilename && $filename -nt $ofilename ]] || [ ! -e $ofilename ]; then
|
||||
result=$(./exe/linux/bin/TemplateCompiler -compile "$filename" 2>&1)
|
||||
|
||||
if [[ ! -z $result ]]; then
|
||||
printf "\r$filename\n"
|
||||
printf "$result\n\n"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
for filename in $filenames; do
|
||||
current=$((current+1))
|
||||
i=$(( (i+1) %4 ))
|
||||
perc=$(bc -l <<< "scale=0; $current*100/$total")
|
||||
printf "\rGenerating Object Templates: [${spinstr:$i:1}] $perc%%"
|
||||
# Comment this loop out if you have a real fast system.(12Cores+, Fast SSD Storage)
|
||||
while [ `jobs | wc -l` -ge 50 ]
|
||||
do
|
||||
sleep 5
|
||||
done
|
||||
compile $filename & done
|
||||
wait
|
||||
|
||||
echo ""
|
||||
|
||||
|
||||
|
||||
3
gameserver/utils/create_tnsnames.sh
Normal file
3
gameserver/utils/create_tnsnames.sh
Normal file
@@ -0,0 +1,3 @@
|
||||
mkdir -p $ORACLE_HOME/network/admin
|
||||
export TNS_ADMIN=$ORACLE_HOME/network/admin
|
||||
echo 'SWG=(DESCRIPTION =(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=$ORACLE_DB_ADDRESS)(PORT=$ORACLE_DB_PORT)))(CONNECT_DATA=(SERVICE_NAME=SWG)))' > $ORACLE_HOME/network/admin/tnsnames.ora
|
||||
@@ -3,17 +3,17 @@ if [ ! -d "redist" ]; then
|
||||
fi
|
||||
|
||||
if [ ! -f ./redist/oracle-instantclient12.1-basic-12.1.0.2.0-1.i386.rpm ]; then
|
||||
wget https://bitbucket.org/seefoe/src/downloads/oracle-instantclient12.1-basic-12.1.0.2.0-1.i386.rpm -P ./redist/
|
||||
wget https://bitbucket.org/seefoe/src/downloads/oracle-instantclient12.1-basic-12.1.0.2.0-1.i386.rpm -P ./redist/
|
||||
fi
|
||||
|
||||
if [ ! -f ./redist/oracle-instantclient12.1-devel-12.1.0.2.0-1.i386.rpm ]; then
|
||||
wget ./redist/ https://bitbucket.org/seefoe/src/downloads/oracle-instantclient12.1-devel-12.1.0.2.0-1.i386.rpm -P ./redist/
|
||||
wget ./redist/ https://bitbucket.org/seefoe/src/downloads/oracle-instantclient12.1-devel-12.1.0.2.0-1.i386.rpm -P ./redist/
|
||||
fi
|
||||
|
||||
if [ ! -f ./redist/oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.i386.rpm ]; then
|
||||
wget ./redist/ https://bitbucket.org/seefoe/src/downloads/oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.i386.rpm -P ./redist/
|
||||
wget ./redist/ https://bitbucket.org/seefoe/src/downloads/oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.i386.rpm -P ./redist/
|
||||
fi
|
||||
|
||||
if [ ! -f ./redist/IBMJava2-SDK-1.4.2-13.18.tgz ]; then
|
||||
wget ./redist/ https://bitbucket.org/seefoe/src/downloads/IBMJava2-SDK-1.4.2-13.18.tgz -P ./redist/
|
||||
wget ./redist/ https://bitbucket.org/seefoe/src/downloads/IBMJava2-SDK-1.4.2-13.18.tgz -P ./redist/
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user