-
Notifications
You must be signed in to change notification settings - Fork 0
/
startup
executable file
·120 lines (98 loc) · 2.87 KB
/
startup
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#!/bin/sh
export HERE=$(pwd)
export OS=$(cd $(dirname $0) && pwd)
export CONFDIR="$OS/conf"
die () {
return_code=$1
shift
if [ $# -eq 0 ]; then
echo "Impossible to continue" >&2
else
echo "$@" >&2
fi
exit $return_code
}
create_dir () {
test -d "$1" && return 0
echo "- create required directory $1"
mkdir "$1" || die $?
}
delete_dir () {
test -d "$1" || return 0
echo "- delete directory $1"
rm -rf "$1"
}
# get out public address (caching it)
iipf=/var/local/natloopback-ip
if [ -r $iipf ]; then
SIM_ADDR=$(cat $iipf)
else
SIM_ADDR=$(curl -s ifconfig.me)
eho $SIM_ADDR > $iipf
fi
export SIM_ADDR
# read local configuration
. "$CONFDIR/opensim.conf" || die $? "Local configuration file '$CONFDIR/opensim.conf' is missing"
cd "$OS/bin" || die $? "No 'bin directory in opensim?"
test -f OpenSim.exe || die $? "Where is OpenSim? There is no OpenSim.exe in bin directory"
# default to public adress
test x"$SIM_HOST" = x && SIM_HOST="$SIM_ADDR"
# default to same host than simulator
test x"$GRID_HOST" = x && GRID_HOST="$SIM_HOST"
# default to simulator listener port
test x"$GRID_PUBLIC" = x && GRID_PUBLIC=$SIM_LSN
test x"$GRID_NAME" = x && GRID_NAME=Local
echo "Simulator settings:"
if [ $STANDALONE = true ]; then
echo "- Mode: STANDALONE"
else
echo "- Mode: GRID"
fi
echo "- Public address: $SIM_ADDR"
echo "- Public hostname: $SIM_HOST"
echo "- HTTP Listener: $SIM_LSN"
echo "Grid settings:"
echo "- Name: $GRID_NAME"
echo "- Public URL: ${GRID_SCHEME}://${GRID_HOST}:${GRID_PUBLIC}"
echo "- Private URL: ${GRID_SCHEME}://${GRID_HOST}:${GRID_PRIVATE}"
echo "Setup:"
# ensure the bin directory will not be touched (easy upgrade)
chmod -w .
#elete unneeded directories from OpenSim tarball
delete_dir ../addon-modules
delete_dir ../doc
delete_dir ../share
delete_dir ../ThirdPartyLicenses
if [ ! -f "$CONFDIR/Local.ini" ]; then
echo "- generate default $CONFDIR/Local.ini"
cat > "$CONFDIR/Local.ini" <<EOT
; generated by startup script. This will will be read after the main OpenSim.ini
; configuration file. Put in it anything you want to customize
EOT
fi
if [ ! -f "$CONFDIR/OpenSim.exe.config" ]; then
echo "- copy default to $CONFDIR/OpenSim.exe.config"
cp "$CONFDIR/OpenSim.exe.config.in" "$CONFDIR/OpenSim.exe.config"
fi
if [ ! -f "$CONFDIR/Grid.ini" ]; then
echo "- copy default to $CONFDIR/Grid.ini"
cp "$CONFDIR/Grid.ini.in" "$CONFDIR/Grid.ini"
fi
# create runtime directories
create_dir "$OS/db"
create_dir "$OS/regions"
create_dir "$OS/runtime"
create_dir "$OS/log"
create_dir "$CONFDIR/modules"
# mono oes not play well with some terminal types, we force XTERM
OLDTERM=$TERM
TERM=xterm
startup_file=OpenSimGrid.ini
test $STANDALONE = true && startup_file=OpenSimStandalone.ini
echo "Start OpenSim"
env LANG=C mono OpenSim.exe \
-logconfig="$CONFDIR/OpenSim.exe.config" \
-inifile="$CONFDIR/provided/$startup_file"
TERM=$OLDTERM
reset
cd $HERE