fork 0k-charms
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

83 lines
2.0 KiB

#!/bin/bash
. lib/common
set -e
domain=$(relation-get domain) || exit 1
url=$(relation-get url) || exit 1
# location=$CONFIGSTORE/$BASE_SERVICE_NAME/var/www/$domain
upload_dir="${SERVICE_DATASTORE}/var/www/$domain/uploads"
if [ -d "$upload_dir" ]; then
uid_gid=$(stat --format=%u:%g "$upload_dir")
else
err "Upload dir '${upload_dir}' was not created. Can't continue."
exit 1
fi
dirs=(
/var/cache/gogocarto
/var/lib/gogocarto/sessions
/var/log/gogocarto
)
to_create=()
for dir in "${dirs[@]}"; do
fdir="${SERVICE_DATASTORE}${dir}"
if ! [ -d "$fdir" ]; then
to_create+=("$fdir")
fi
done
if [ "${#to_create[@]}" -gt 0 ]; then
mkdir -p "${to_create[@]}" &&
chown -v "$uid_gid" "${to_create[@]}" &&
chmod -v g+rwx "${to_create[@]}"
fi
cat <<EOF >> "${GOGOCARTO_CODE}"/.env
BASE_PROTOCOL=${url%%://*}
BASE_URL=$domain
BASE_PATH=/index.php
EOF
cat <<EOF > "${GOGOCARTO_CODE}"/web/.htaccess
Options -MultiViews
RewriteEngine On
RewriteRule ^js/.* - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/\$1 [QSA,L]
EOF
## Make the web part aware of were the PHP app is located
sed -ri "s%^(\s*require\s+).*(/config/bootstrap.php'\s*;\s*)$%\1'/opt/apps/$SERVICE_NAME\2%" \
"${GOGOCARTO_CODE}"/web/index.php || exit 1
## correct bundles links, these are for static resources (css, js)
## offered in PHP dependencies.
(
cd "${GOGOCARTO_CODE}"/web/bundles
for i in *; do
link_target=$(readlink "$i")
ln -svf "/opt/apps/${SERVICE_NAME}/vendor/${link_target#*/vendor/}" "$i"
done
) || exit 1
config-add "
services:
$MASTER_TARGET_SERVICE_NAME:
volumes:
- $GOGOCARTO_CODE:/opt/apps/$SERVICE_NAME:rw
- $SERVICE_DATASTORE/var/cache/gogocarto:/opt/apps/$SERVICE_NAME/var/cache:rw
- $SERVICE_DATASTORE/var/lib/gogocarto/sessions:/opt/apps/$SERVICE_NAME/var/sessions:rw
- $SERVICE_DATASTORE/var/log/gogocarto:/opt/apps/$SERVICE_NAME/var/log:rw
## Required to give PHP access to this dir
- $upload_dir:/opt/apps/$SERVICE_NAME/web/uploads:rw
"