47 lines
No EOL
1.3 KiB
Bash
47 lines
No EOL
1.3 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
export CATALINA_TMPDIR=/usr/local/tomcat/temp
|
|
|
|
runtime_root="/usr/local/tomcat/webapps/ROOT"
|
|
workspace_www="/workspace/www"
|
|
|
|
rm -rf "$runtime_root"
|
|
mkdir -p "$runtime_root"
|
|
|
|
shopt -s dotglob nullglob
|
|
|
|
for source_path in "$workspace_www"/*; do
|
|
entry_name="$(basename "$source_path")"
|
|
if [ "$entry_name" = "WEB-INF" ]; then
|
|
continue
|
|
fi
|
|
ln -s "$source_path" "$runtime_root/$entry_name"
|
|
done
|
|
|
|
mkdir -p "$runtime_root/WEB-INF"
|
|
cp -a "$workspace_www/WEB-INF/." "$runtime_root/WEB-INF/"
|
|
|
|
mkdir -p /usr/local/tomcat/conf/Catalina/localhost
|
|
cat > /usr/local/tomcat/conf/Catalina/localhost/ROOT.xml <<'EOF'
|
|
<Context>
|
|
<Resources allowLinking="true" />
|
|
</Context>
|
|
EOF
|
|
|
|
/usr/local/bin/bootstrap-docbase.sh
|
|
|
|
patch_context_param() {
|
|
local param_name="$1"
|
|
local param_value="$2"
|
|
|
|
PARAM_NAME="$param_name" PARAM_VALUE="$param_value" perl -0pi -e 's#(<param-name>\Q$ENV{PARAM_NAME}\E</param-name>\s*<param-value>)[^<]*(</param-value>)#$1 . $ENV{PARAM_VALUE} . $2#egs' "$runtime_root/WEB-INF/web.xml"
|
|
}
|
|
|
|
patch_context_param database "//${LOCAL_DB_HOST:-mysql}/${LOCAL_DB_NAME:-pg}"
|
|
patch_context_param catalog "${LOCAL_DB_NAME:-pg}"
|
|
patch_context_param user "${LOCAL_DB_USER:-root}"
|
|
patch_context_param password "${LOCAL_DB_PASSWORD:-root}"
|
|
patch_context_param instance "${LOCAL_APP_INSTANCE:-local-model}"
|
|
|
|
exec catalina.sh run |