my_webapp_ynh/scripts/config
Éric Gaspar 0f3fc48543 cleaning
2024-06-23 21:51:49 +02:00

168 lines
6 KiB
Bash

#!/bin/bash
source _common.sh
source /usr/share/yunohost/helpers
ynh_abort_if_errors
#=================================================
# RETRIEVE ARGUMENTS
#=================================================
install_dir=$(ynh_app_setting_get --key=install_dir)
domain=$(ynh_app_setting_get --key=domain)
path=$(ynh_app_setting_get --key=path)
current_fpm_footprint=$(ynh_app_setting_get --key=fpm_footprint)
# REMOVEME ? Everything about fpm_footprint is removed in helpers2.1... | fpm_footprint=$(ynh_app_setting_get --key=fpm_footprint)
# REMOVEME ? Everything about fpm_usage is removed in helpers2.1... | fpm_usage=$(ynh_app_setting_get --key=fpm_usage)
#=================================================
# SPECIFIC GETTERS FOR TOML SHORT KEY
#=================================================
get__fpm_footprint() {
# Free footprint value for php-fpm
# Check if current_fpm_footprint is an integer
if [ "$current_fpm_footprint" -eq "$current_fpm_footprint" ] 2> /dev/null
then
echo "specific"
else
echo "$current_fpm_footprint"
fi
}
get__free_footprint() {
# Free footprint value for php-fpm
# Check if current_fpm_footprint is an integer
if [ "$current_fpm_footprint" -eq "$current_fpm_footprint" ] 2> /dev/null
then
# If current_fpm_footprint is an integer, that's a numeric value for the footprint
echo "$current_fpm_footprint"
else
echo "0"
fi
}
#=================================================
# SPECIFIC VALIDATORS FOR TOML SHORT KEYS
#=================================================
#=================================================
# SPECIFIC SETTERS FOR TOML SHORT KEYS
#=================================================
set__password() {
if [ "$password" == "" ]
then
ynh_app_setting_set --key=password --value="$password"
fi
}
# REMOVEME ? Everything about fpm_footprint is removed in helpers2.1... | set__fpm_footprint() {
# REMOVEME ? Everything about fpm_footprint is removed in helpers2.1... | if [ "$fpm_footprint" != "specific" ]
then
# REMOVEME ? Everything about fpm_footprint is removed in helpers2.1... | ynh_app_setting_set --key=fpm_footprint --value="$fpm_footprint"
fi
}
# REMOVEME ? Everything about fpm_free_footprint is removed in helpers2.1... | set__fpm_free_footprint() {
# REMOVEME ? Everything about fpm_footprint is removed in helpers2.1... | if [ "$fpm_footprint" = "specific" ]
then
# REMOVEME ? Everything about fpm_free_footprint is removed in helpers2.1... | ynh_app_setting_set --key=fpm_footprint --value="$fpm_free_footprint"
fi
}
#=================================================
ynh_app_config_validate() {
_ynh_app_config_validate
if [ "${changed[with_sftp]}" == "true" ] && [ $with_sftp -eq 1 ] && [ "$password" == "" ]
then
ynh_die "You need to set a password to enable SFTP"
fi
if [ "${changed[fpm_usage]}" == "true" ] || [ "${changed[fpm_footprint]}" == "true" ] || [ "${changed[fpm_free_footprint]}" == "true" ]; then
# REMOVEME ? Everything about fpm_free_footprint is removed in helpers2.1... | # If fpm_footprint is set to 'specific', use $fpm_free_footprint value.
# REMOVEME ? Everything about fpm_footprint is removed in helpers2.1... | if [ "$fpm_footprint" = "specific" ]
then
# REMOVEME ? Everything about fpm_free_footprint is removed in helpers2.1... | fpm_footprint=$fpm_free_footprint
fi
# REMOVEME ? Everything about fpm_footprint is removed in helpers2.1... | if [ "$fpm_footprint" == "0" ]
then
ynh_print_warn "When selecting 'specific', you have to set a footprint value into the field below."
exit 0
fi
fi
}
ynh_app_config_apply() {
_ynh_app_config_apply
if [ "${changed[php_version]}" == "true" ]
then
ynh_app_setting_set --key=php_version --value="${old[php_version]}"
ynh_config_remove_phpfpm
ynh_apt_remove_dependencies
YNH_PHP_VERSION=$php_version
# ^ ynh_config_add replaces __PHP_VERSION__ by __PHP_YNH_VERSION__...
ynh_app_setting_set --key=php_version --value="$php_version"
nginx_extra_conf_dir="/etc/nginx/conf.d/$domain.d/$app.d"
mkdir -p "$nginx_extra_conf_dir"
if [ "$php_version" == "none" ]
then
ynh_delete_file_checksum "$nginx_extra_conf_dir/php.conf"
ynh_safe_rm "$nginx_extra_conf_dir/php.conf"
else
ynh_config_add --template="nginx-php.conf" --destination="$nginx_extra_conf_dir/php.conf"
database=$(ynh_app_setting_get --key=database)
dependencies="$(ynh_read_manifest -k "resources.apt.packages")"
dependencies_from_raw_bash=$(eval "$(ynh_read_manifest -k "resources.apt.packages_from_raw_bash")" | tr "\n" " ")
ynh_apt_install_dependencies "$dependencies $dependencies_from_raw_bash"
ynh_config_add_phpfpm
# ^ the helper takes care of ynh_app_setting_set the php_version
fi
ynh_config_add_nginx
fi
if [ "${changed[with_sftp]}" == "true" ] && [ $with_sftp -eq 1 ]
then
ynh_system_user_add_group --username=$app --groups="sftp.app"
if [ ! "$password" == "" ]
then
chpasswd <<< "${app}:${password}"
fi
elif [ "${changed[with_sftp]}" == "true" ] && [ $with_sftp -eq 0 ]
then
ynh_system_user_del_group --username=$app --groups="sftp.app"
fi
if [ "${changed[custom_error_file]}" == "true" ]
then
CUSTOM_ERROR_FILE=$custom_error_file
nginx_extra_conf_dir="/etc/nginx/conf.d/$domain.d/$app.d"
if [ $custom_error_file -eq 1 ]
then
ynh_config_add --template="nginx-code-error.conf" --destination="$nginx_extra_conf_dir/error-code.conf"
elif [ $custom_error_file -eq 0 ]
then
ynh_safe_rm "$nginx_extra_conf_dir/error-code.conf"
fi
ynh_systemctl --service=nginx --action=reload
fi
if [ "$php_version" != "none" ]
then
ynh_config_add_phpfpm
fi
}
ynh_app_config_run $1