#!/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 <> "${GOGOCARTO_CODE}"/.env BASE_PROTOCOL=${url%%://*} BASE_URL=$domain BASE_PATH=/index.php EOF cat < "${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 "