From 52ffac83fea56e206f2e9871ac4710281ac2a8d5 Mon Sep 17 00:00:00 2001 From: Christoph Date: Wed, 11 Oct 2017 14:51:44 +0200 Subject: [PATCH] - Add install composer also localy into roundcube documentroot. - Fix some minor error for configuring/installing a logo. --- install_roundcube.sh | 81 ++++++++++++++++++++++++++++---------------- 1 file changed, 52 insertions(+), 29 deletions(-) diff --git a/install_roundcube.sh b/install_roundcube.sh index 13f9601..e7fca78 100755 --- a/install_roundcube.sh +++ b/install_roundcube.sh @@ -28,6 +28,7 @@ conf_file="${_src_base_dir}/conf/install_roundcube.conf" curdir=`pwd` log_file="$(mktemp)" +tmp_dir="$(mktemp -d)" backup_date="$(date +%Y-%m-%d-%H%M)" @@ -35,6 +36,14 @@ backup_date="$(date +%Y-%m-%d-%H%M)" # - Functions # ------------- +clean_up() { + + # Perform program exit housekeeping + rm -f "$log_file" + rm -rf "$tmp_dir" + exit $1 +} + echononl(){ echo X\\c > /tmp/shprompt$$ if [ `wc -c /tmp/shprompt$$ | awk '{print $1}'` -eq 1 ]; then @@ -51,7 +60,7 @@ fatal(){ echo "" echo -e "\t\033[31m\033[1mInstalllation wird abgebrochen\033[m" echo "" - exit 1 + clean_up 1 } error(){ @@ -81,6 +90,7 @@ echo_skipped() { echo -e "\033[75G[ \033[30m\033[1mskipped\033[m ]" } +trap clean_up SIGHUP SIGINT SIGTERM if [ "$DB_TYPE" = "postgres" -o "$DB_TYPE" = "postgresql" -o "$DB_TYPE" = "pgsql" -o "$DB_TYPE" = "psql" ];then @@ -223,9 +233,13 @@ fi SKIN_LOGO_PRESENT=false if [[ -f "${WEBSITE_BASEDIR}/htdocs/${SKIN_LOGO}" ]]; then SKIN_LOGO_PRESENT=true - SKIN_LOGO_DIR="$(dirname $SKIN_LOGO)" - SKIN_LOGO_FILE="$(basename $SKIN_LOGO)" - cp -a ${WEBSITE_BASEDIR}/htdocs/${SKIN_LOGO} /tmp/ + SKIN_LOGO_DIR="$(echo "${SKIN_LOGO%/*}")" + SKIN_LOGO_FILE="$(echo "${SKIN_LOGO##*/}")" + if [[ "$(echo "${SKIN_LOGO%/*}")" = "$SKIN_LOGO" ]] ; then + cp -a "${WEBSITE_BASEDIR}/htdocs/${SKIN_LOGO}" "${tmp_dir}/" + else + cp -a "${WEBSITE_BASEDIR}/htdocs/${SKIN_LOGO_DIR}" "${tmp_dir}/" + fi fi # --- @@ -468,15 +482,6 @@ else error "$(cat $log_file)" fi -echononl "\tRemove the installer" -php -r "unlink('${_src_base_dir}/composer-setup.php');" > $log_file 2>&1 -if [[ "$?" = "0" ]]; then - echo_ok -else - echo_failed - error "$(cat $log_file)" -fi - echo -e "\n\n\t\033[37m\033[1mCreate some Backups..\033[m\n" @@ -586,6 +591,24 @@ else error "$(cat $log_file)" fi +echononl "\tInstall composer to ${WEBSITE_BASEDIR}/roundcubemail-${ROUNDCUBE_VERSION}" +php ${_src_base_dir}/composer-setup.php --install-dir=${WEBSITE_BASEDIR}/roundcubemail-${ROUNDCUBE_VERSION} > $log_file 2>&1 +if [[ "$?" = "0" ]]; then + echo_ok +else + echo_failed + error "$(cat $log_file)" +fi + +echononl "\tRemove the installer" +php -r "unlink('${_src_base_dir}/composer-setup.php');" > $log_file 2>&1 +if [[ "$?" = "0" ]]; then + echo_ok +else + echo_failed + error "$(cat $log_file)" +fi + echononl "\tInstall PHP dependencies.." #/usr/local/php-${php_latest_ver}/bin/php /usr/local/bin/composer install --no-dev @@ -667,17 +690,18 @@ fi if $SKIN_LOGO_PRESENT ; then _failed=false echononl "\tRestore logo '$SKIN_LOGO_FILE'" - if [[ ! -d "${WEBSITE_BASEDIR}/htdocs/${SKIN_LOGO_DIR}" ]]; then - mkdir ${WEBSITE_BASEDIR}/htdocs/${SKIN_LOGO_DIR} > $log_file 2>&1 - if [[ $? -ne 0 ]]; then - _failed=true + if [[ "$(echo "${SKIN_LOGO%/*}")" = "$SKIN_LOGO" ]] ; then + cp -a "${tmp_dir}/${SKIN_LOGO}" "${WEBSITE_BASEDIR}/htdocs/" >> $log_file 2>&1 + else + if [[ ! -d "${WEBSITE_BASEDIR}/htdocs/${SKIN_LOGO_DIR}" ]]; then + cp -a "${tmp_dir}/${SKIN_LOGO_DIR}" "${WEBSITE_BASEDIR}/htdocs/" >> $log_file 2>&1 + else + cp -a "$(realpath "${tmp_dir}/${SKIN_LOGO_DIR}/${SKIN_LOGO_FILE}")" \ + "${WEBSITE_BASEDIR}/htdocs/${SKIN_LOGO_DIR}/${SKIN_LOGO_FILE}" >> $log_file 2>&1 fi + fi - mv /tmp/$SKIN_LOGO_FILE ${WEBSITE_BASEDIR}/htdocs/${SKIN_LOGO_DIR}/ >> $log_file 2>&1 if [[ $? -ne 0 ]]; then - _failed=true - fi - if $_failed ; then echo_failed error $(cat $log_file) else @@ -1506,7 +1530,7 @@ fi info "Now browse to the intaller site and continue installation.\n$(cat <>$WEBSITE_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/config/config.in // SYSTEM // ---------------------------------- +// THIS OPTION WILL ALLOW THE INSTALLER TO RUN AND CAN EXPOSE SENSITIVE CONFIG DATA. +// ONLY ENABLE IT IF YOU'RE REALLY SURE WHAT YOU'RE DOING! +\$config['enable_installer'] = false; + // Allow browser-autocompletion on login form. // 0 - disabled, 1 - username and host only, 2 - username, host, password \$config['login_autocomplete'] = 1; -// Path to a local mime magic database file for PHPs finfo extension. -// Set to null if the default path should be used. -\$config['mime_magic'] = '/usr/share/misc/magic'; - // ---------------------------------- // USER PREFERENCES @@ -2988,6 +3012,5 @@ else fi echo "" -rm -rf $log_file -exit +clean_up 0