diff --git a/installers/common.sh b/installers/common.sh old mode 100755 new mode 100644 index bd389178..fcd4ea5d --- a/installers/common.sh +++ b/installers/common.sh @@ -287,9 +287,9 @@ function _install_dependencies() { if [[ "$php_package" == *"-fpm" ]]; then _install_log "Enabling lighttpd fastcgi-php-fpm module for $php_package" - sudo lighty-enable-mod fastcgi-php-fpm || _install_status 1 "Unable to enable fastcgi-php-fpm module" + sudo lighty-enable-mod fastcgi-php-fpm 2>&1 | grep -qE "already enabled" || \ + _install_status 1 "Unable to enable fastcgi-php-fpm module" fi - _install_status 0 } @@ -641,18 +641,36 @@ function _download_latest_files() { if [ -d "$webroot_dir" ] && [ "$update" == 0 ]; then sudo mv $webroot_dir "$webroot_dir.`date +%F-%R`" || _install_status 1 "Unable to move existing webroot directory" elif [ "$upgrade" == 1 ] || [ "$update" == 1 ]; then - exclude='--exclude=ajax/system/sys_read_logfile.php' - shopt -s extglob - sudo find "$webroot_dir" ! -path "${webroot_dir}/ajax/system/sys_read_logfile.php" -delete 2>/dev/null + # Preserve user plugins temporarily + if [ -d "$webroot_dir/plugins" ]; then + sudo cp -r "$webroot_dir/plugins" "/tmp/raspap-user-plugins" + fi + + sudo find "$webroot_dir" -mindepth 1 \ + ! -path "${webroot_dir}/ajax/system/sys_read_logfile.php" \ + ! -path "${webroot_dir}/plugins" \ + ! -path "${webroot_dir}/plugins/*" \ + -delete 2>/dev/null + + # Remove plugins to permit clean rsync + sudo rm -rf "$webroot_dir/plugins" fi _install_log "Installing application to $webroot_dir" sudo rsync -av $exclude "$source_dir"/ "$webroot_dir"/ >/dev/null 2>&1 || _install_status 1 "Unable to install files to $webroot_dir" + # Restore user plugins after rsync + if [ "$upgrade" == 1 ] || [ "$update" == 1 ]; then + if [ -d "/tmp/raspap-user-plugins" ]; then + sudo find /tmp/raspap-user-plugins -mindepth 1 -maxdepth 1 -type d -exec cp -r {} "$webroot_dir/plugins/" \; 2>/dev/null + sudo rm -rf "/tmp/raspap-user-plugins" + fi + fi + if [ "$update" == 1 ]; then _install_log "Applying existing configuration to ${webroot_dir}/includes" sudo mv /tmp/config.php $webroot_dir/includes || _install_status 1 "Unable to move config.php to ${webroot_dir}/includes" - + if [ -f /tmp/raspap.auth ]; then _install_log "Applying existing authentication file to ${raspap_dir}" sudo mv /tmp/raspap.auth $raspap_dir || _install_status 1 "Unable to restore authentification credentials file to ${raspap_dir}"