forked from 0k/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
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
|
|
"
|