#!/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


config-add "
services:
  $MASTER_TARGET_SERVICE_NAME:
    volumes:
      - $GOGOCARTO_CODE:$GOGOCARTO_DIR:rw
      - $SERVICE_DATASTORE/var/cache/gogocarto:$GOGOCARTO_DIR/var/cache:rw
      - $SERVICE_DATASTORE/var/lib/gogocarto/sessions:$GOGOCARTO_DIR/var/sessions:rw
      - $SERVICE_DATASTORE/var/log/gogocarto:$GOGOCARTO_DIR/var/log:rw
      ## Required to give PHP access to this dir
      - $upload_dir:$GOGOCARTO_DIR/web/uploads:rw
"