#! /bin/bash # causes the shell to exit if any subcommand or pipeline returns a non-zero status set -e # causes the shell to exit if you try to use an uninitialised variable set -u app=bozon # retrieve arguments path=$(sudo yunohost app setting $app path) stable=$(sudo yunohost app setting $app version) is_public=$(sudo yunohost app setting $app is_public) filesize=$(sudo yunohost app setting $app filesize) domain=$(sudo yunohost app setting $app domain) if [ "${#filesize}" -eq 0 ] then # in old script filesize was not saved as an setting filesize=$(cat /etc/nginx/conf.d/$domain.d/$app.conf | grep -Po 'client_max_body_size \K.*(?=;)') sudo yunohost app setting $app filesize -v "$filesize" fi # definie useful vars parent_path=/var/www data_path=/home/yunohost.app/$app final_path=$parent_path/$path # retrieve stable version of bozon stable=$(cat ../BoZoN-stable) # save app settings sudo yunohost app setting $app version -v "$stable" # download stable version of bozon sudo wget https://github.com/broncowdd/BoZoN/archive/$stable.zip -O $parent_path/bozon-$stable.zip sudo unzip $parent_path/bozon-$stable.zip -d $parent_path/ sudo rm $parent_path/bozon-$stable.zip sudo rsync -avz --exclude="config.php" --exclude=".htaccess" $parent_path/BoZoN-$stable/* $final_path sudo rm -R $parent_path/BoZoN-$stable # configure nginx settings ## path folder_path=${path%/} sudo sed -i "s@YNH_EXAMPLE_PATH@$path@g" ../conf/nginx.conf sudo sed -i "s@YNH_EXAMPLE_ALIAS@$final_path@g" ../conf/nginx.conf ## file upload size limit sudo sed -i "s@YNH_FILE_SIZE@${filesize}@g" ../conf/nginx.conf ## copy final sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/$app.conf # copy and set php-fpm configuration ## path sed -i "s@YNH_EXAMPLE_APP@${app}@g" ../conf/php-fpm.conf sed -i "s@YNH_EXAMPLE_ALIAS@${final_path}@g" ../conf/php-fpm.conf ## file upload size limit sudo sed -i "s@YNH_FILE_SIZE@${filesize}@g" ../conf/php-fpm.conf postsize=${filesize%?}.1${filesize: -1} sudo sed -i "s@YNH_POST_SIZE@${postsize}@g" ../conf/php-fpm.conf ## copy final and set permissions phpfpm_conf="/etc/php5/fpm/pool.d/${app}.conf" sudo cp ../conf/php-fpm.conf "$phpfpm_conf" sudo chown root: $phpfpm_conf sudo chmod 644 $phpfpm_conf # if app is private, remove url to SSOWat conf from skipped_uris if [ "$is_public" = "No" ]; then # escape magic chars in vars (lua magic chars are ().%+-*?[^$ according to https://www.lua.org/pil/20.2.html) domainluaregex=$(echo "$domain" | sed -e 's/[]().%+*?[^$[]/\%&/g' | sed -e 's/\-/\%&/g') pathluaregex=$(echo "$path" | sed -e 's/[]().%+*?[^$[]/\%&/g' | sed -e 's/\-/\%&/g') # redirect to SSOwat login in sudo yunohost app setting $app unprotected_uris -d sudo yunohost app setting $app unprotected_regex -v "$domainluaregex$pathluaregex/index.php%?f=.+$","$domainluaregex$pathluaregex/index.php%?zipfolder=.+$","$domainluaregex$pathluaregex/private/temp/.+%.zip$","$domainluaregex$pathluaregex/core/js/.*$","$domainluaregex$pathluaregex/templates/.*$" fi # Restart services sudo service php5-fpm restart || true sudo service nginx restart || true sudo yunohost app ssowatconf