#!/bin/bash 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) 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 if ! ynh_system_user_exists "$runninguser" ; 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