#!/bin/bash # Note: each files and directories you've saved using the ynh_backup helper # will be located in the current directory, regarding the last argument. # Exit on command errors and treat unset variables as an error #set -eu #TRAP_ON () { # Activate signal capture # trap EXIT_PROPERLY ERR # Capturing ex it signals on error #} # Active trap pour arrêter le script si une erreur est détectée. #TRAP_ON # See comments in install script app=$YNH_APP_INSTANCE_NAME # Source YunoHost helpers source /usr/share/yunohost/helpers # Retrieve old app settings final_path=$(ynh_app_setting_get $app final_path) path=$(ynh_app_setting_get $app path) domain=$(ynh_app_setting_get $app domain) is_public=$(ynh_app_setting_get $app is_public) finalnginxconf=$(ynh_app_setting_get $app finalnginxconf) finalphpconf=$(ynh_app_setting_get $app finalphpconf) runninguser=$(ynh_app_setting_get $app runninguser) basicauthcreate=$(ynh_app_setting_get $app basicauthcreate) # We install dependencies #sudo apt-get update -y #sudo apt-get install php5-gd php5-sqlite php5-json php5-intl -y # Install dependencies using Helpers #ynh_package_install_from_equivs ../conf/cops-deps.control \ #|| ynh_die "Unable to install dependencies" # Restore sources & data sudo mkdir -p $final_path sudo cp -a ./sources/* $final_path/ # Create cops user and join nextcloud/owncloud/www-data groups runninguser="${app}-ynh" # 1. Create the user # Create a system account for COPS if it doesn't already exists test="$(sudo grep ^${runninguser}: /etc/passwd)" if [ -n "${test}" ]; then echo "The user $runninguser does not exist, we can create it" sudo useradd -c "$runninguser system account" \ -d $final_path --system --user-group $runninguser \ || ynh_die "Unable to create $runninguser system account" else echo "The user $runninguser exists, no need to create it" fi ynh_app_setting_set "$app" runninguser "$runninguser" # 2. Add cops-ynh to groups www-data and nextcloud/owncloud if they exist sudo usermod -a -G www-data $runninguser for filesharing in "nextcloud" "owncloud"; do app_id=$(sudo yunohost app list --installed -f "$filesharing" \ --output-as json | grep -Po '"id":[ ]?"\K.*?(?=")' | head -1) [[ -z "$app_id" ]] || { sudo usermod -a -G $filesharing $runninguser } done # Restore permissions to app files # you may need to make some file and/or directory writeable by www-data (nginx user) sudo chown -R $runninguser:$runninguser $final_path if [ "$basicauthcreate" = "Yes" ]; then sudo chmod 440 $final_path/htpasswd sudo chown www-data:www-data $final_path/htpasswd else echo "Nothing to do" fi # Restore NGINX configuration sudo cp -a ./nginx.conf $finalnginxconf ### PHP (remove if not used) ### # If a dedicated php-fpm process is used: # # Copy PHP-FPM pool configuration and reload the service sudo cp -a ./php-fpm.conf $finalphpconf ### PHP end ### # Make app public if necessary is_public=$(ynh_app_setting_get $app is_public) if [ "$is_public" = "Yes" ]; then ynh_app_setting_set $app skipped_uris "/" else ynh_app_setting_set $app protected_uris "/" fi # Restart webserver sudo service nginx reload sudo service php5-fpm reload sudo yunohost app ssowatconf