#!/bin/bash #================================================= # GENERIC START #================================================= # IMPORT GENERIC HELPERS #================================================= source _common.sh source /usr/share/yunohost/helpers #================================================= # BACKUP BEFORE UPGRADE THEN ACTIVE TRAP #================================================= # Exit if an error occurs during the execution of the script ynh_abort_if_errors #================================================= # RETRIEVE ARGUMENTS FROM THE MANIFEST #================================================= app=$YNH_APP_INSTANCE_NAME # Set app specific variables dbuser=$app # Retrieve settings domain=$(ynh_app_setting_get "$app" domain) path_url=$(ynh_app_setting_get "$app" path) admin=$(ynh_app_setting_get "$app" adminusername) email=$(ynh_user_get_info "$admin" mail) dbpass=$(ynh_app_setting_get "$app" mysqlpwd) is_public=$(ynh_app_setting_get "$app" is_public) final_path=$(ynh_app_setting_get "$app" final_path) if [[ -z "$is_public" ]] then # Old version doesnt have is_public settings is_public=0 ynh_app_setting_set "$app" is_public "$is_public" fi # Fix is_public as a boolean value if [ "$is_public" = "Yes" ]; then ynh_app_setting_set "$app" is_public 1 is_public=1 elif [ "$is_public" = "No" ]; then ynh_app_setting_set "$app" is_public 0 is_public=0 fi # If final_path doesn't exist, create it if [[ -z "$final_path" ]] then final_path="/var/www/$app" ynh_app_setting_set "$app" final_path "$final_path" fi #================================================= # CHECK THE PATH #================================================= # Normalize the URL path syntax path_url=$(ynh_normalize_url_path $path_url) # Backup the current version of the app ynh_backup_before_upgrade ynh_clean_setup () { # restore it if the upgrade fails ynh_restore_upgradebackup } # Exit if an error occurs during the execution of the script ynh_abort_if_errors #================================================= # STANDARD UPGRADE STEPS #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= # Move old app dir mv "$final_path" "$final_path.old" ynh_setup_source "$final_path" mkdir -p "$final_path"/sessions # restore data cp -a "$final_path.old/data" "$final_path" # restore plugins if [ -e "$final_path.old/plugins" ] then cp -a "$final_path.old/plugins" "$final_path" fi # delete temp directory ynh_secure_remove "$final_path.old" #================================================= # NGINX CONFIGURATION #================================================= # Create a dedicated nginx config ynh_add_nginx_config #================================================= # CREATE DEDICATED USER #================================================= # Create a system user ynh_system_user_create "$app" #================================================= # PHP-FPM CONFIGURATION #================================================= # Create a dedicated php-fpm config ynh_add_fpm_config #================================================= # INSTALL DEPENDENCIES #================================================= ynh_install_app_dependencies $pkg_dependencies #================================================= # SPECIFIC UPGRADE #================================================= # Create config.php #================================================= # Copy and edit config.php config_php="$final_path/config.php" cp ../conf/config.php "$config_php" ynh_replace_string "yuno_dbpdw" "$dbpass" "$config_php" ynh_replace_string "yuno_dbuser" "$dbuser" "$config_php" ynh_replace_string "yuno_admin" "$admin" "$config_php" ynh_replace_string "yuno_email" "$email" "$config_php" ynh_replace_string "yuno_domain" "$domain" "$config_php" #================================================= # Database initialization #================================================= ( cd "$final_path" # Launch database migratio php cli db:migrate --no-interaction --verbose # Launch plugins migration php cli plugin:upgrade --no-interaction --verbose ) #================================================= # GENERIC FINALIZATION #================================================= # SECURE FILES AND DIRECTORIES #================================================= # Set permissions to kanboard and data directory chown -R root:root "$final_path" chown -R "$app" "$final_path"/{data,plugins,sessions} chmod -R 700 "$final_path"/sessions #================================================= # SETUP SSOWAT #================================================= if [[ "$path_url" == "/" ]] then # ynh panel is only comptable with non-root installation ynh_replace_string " include conf.d/" " #include conf.d/" "$finalnginxconf" ynh_store_file_checksum "$finalnginxconf" else ynh_replace_string "^#sub_path_only" "" "$finalnginxconf" ynh_store_file_checksum "$finalnginxconf" fi # Make app public or private if [[ "$is_public" -eq 1 ]]; then ynh_app_setting_set "$app" unprotected_uris "/" ynh_replace_string "define('LDAP_AUTH'.*$" "define('LDAP_AUTH', true);" "$config_php" ynh_replace_string "define('HIDE_LOGIN_FORM'.*$" "define('HIDE_LOGIN_FORM', false);" "$config_php" ynh_replace_string "define('REMEMBER_ME_AUTH'.*$" "define('REMEMBER_ME_AUTH', true);" "$config_php" ynh_replace_string "define('DISABLE_LOGOUT'.*$" "define('DISABLE_LOGOUT', false);" "$config_php" else ynh_app_setting_set "$app" unprotected_uris "/jsonrpc.php" fi #================================================= # RELOAD NGINX #================================================= service php5-fpm restart systemctl reload nginx