: ${XDEBUG_REMOTE_HOST:="172.17.0.1"}
: ${XDEBUG_IDE_KEY:="ide"}
: ${SYSPASS_DEV:=0}
: ${PHP_XDEBUG_FILE:="/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini"}
: ${SYSPASS_LOCALES:="es_ES en_US en_GB de_DE ca_ES fr_FR ru_RU pl_PL nl_NL pt_BR da_DK it_IT fo_FO ja_JP"}
: ${COMPOSER_EXTENSIONS:=}
: ${DEBUG:=0}

if [ ${DEBUG} -eq 1 ]; then
  set -x
fi

COMPOSER_OPTIONS="--working-dir ${SYSPASS_DIR} --classmap-authoritative"
GOSU="gosu ${SYSPASS_UID}"

COLOR_NC='\033[0m'
COLOR_YELLOW='\033[0;33m'
COLOR_RED='\033[0;31m'
COLOR_GREEN='\033[0;32m'

if [ ${SYSPASS_DEV} -eq 1 ]; then
  COMPOSER_OPTIONS="--working-dir ${SYSPASS_DIR} --optimize-autoloader --dev"
fi

setup_apache () {
  if [ ${SYSPASS_DEV} -eq 0 ]; then
    return 0
  fi

  echo -e "${COLOR_YELLOW}setup_apache: Setting up xdebug variables${COLOR_NC}"

  sed -i 's/__XDEBUG_REMOTE_HOST__/'"$XDEBUG_REMOTE_HOST"'/;
  s/__XDEBUG_IDE_KEY__/'"$XDEBUG_IDE_KEY"'/' \
  ${PHP_XDEBUG_FILE}
}

run_apache () {
  : ${PHP_INI_DIR:=}

  if [ -z "${PHP_INI_DIR}" ]; then
    echo -e "${COLOR_YELLOW}run_apache: Starting Apache${COLOR_NC}"

    # Apache gets grumpy about PID files pre-existing
    rm -f ${APACHE_PID_FILE}

    exec /usr/sbin/apache2ctl -DFOREGROUND
  else
    echo -e "${COLOR_YELLOW}run_apache: Starting Apache (PHP)${COLOR_NC}"

    apache2-foreground
  fi
}

setup_app () {
  if [ -e "${SYSPASS_DIR}/index.php" ]; then
    echo -e "${COLOR_YELLOW}setup_app: Setting up permissions${COLOR_NC}"

    RW_DIRS="${SYSPASS_DIR}/app/config \
    ${SYSPASS_DIR}/app/backup \
    ${SYSPASS_DIR}/app/cache \
    ${SYSPASS_DIR}/app/resources \
    ${SYSPASS_DIR}/app/temp"

    chown ${APACHE_RUN_USER}:${SYSPASS_UID} -R ${RW_DIRS}

    chmod 750 ${RW_DIRS}

    chown ${SYSPASS_UID}:${SYSPASS_UID} -R \
    ${SYSPASS_DIR}/app/modules/*/plugins \
    ${SYSPASS_DIR}/composer.json \
    ${SYSPASS_DIR}/composer.lock \
    ${SYSPASS_DIR}/vendor
  fi
}

setup_locales() {
  if [ ! -e ".setup" ]; then
    LOCALE_GEN="/etc/locale.gen"

    echo -e "${COLOR_YELLOW}setup_locales: Setting up locales${COLOR_NC}"

    echo -e "\n### sysPass locales" >> $LOCALE_GEN

    for LOCALE in ${SYSPASS_LOCALES}; do
      echo "${LOCALE}.UTF-8 UTF-8" >> $LOCALE_GEN
    done

    echo 'LANG="en_US.UTF-8"' > /etc/default/locale

    dpkg-reconfigure --frontend=noninteractive locales

    update-locale LANG=en_US.UTF-8

    export LANG=en_US.UTF-8

    echo "1" > .setup
  else
    echo -e "${COLOR_YELLOW}setup_locales: Locales already set up${COLOR_NC}"
  fi
}

run_composer () {
  pushd ${SYSPASS_DIR}

  if [ -e "./composer.lock" -a -e "composer.json" ]; then
    echo -e "${COLOR_YELLOW}run_composer: Running composer${COLOR_NC}"

    ${GOSU} composer "$@" ${COMPOSER_OPTIONS}
  else
    echo -e "${COLOR_RED}run_composer: Error, composer not set up${COLOR_NC}"
  fi

  popd
}

setup_composer_extensions () {
  if [ -n "${COMPOSER_EXTENSIONS}" ]; then
    echo -e "${COLOR_YELLOW}setup_composer_extensions: ${COMPOSER_EXTENSIONS}${COLOR_NC}"

    run_composer require ${COMPOSER_EXTENSIONS} --update-no-dev
  fi
}