mirror of
https://github.com/YunoHost-Apps/wordpress_ynh.git
synced 2024-09-03 20:36:10 +02:00
Merge pull request #79 from YunoHost-Apps/actions_config_panel
Add action and config-panel feature
This commit is contained in:
commit
5b29449212
6 changed files with 207 additions and 6 deletions
11
actions.toml
Normal file
11
actions.toml
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[public_private]
|
||||||
|
name = "Move to public or private"
|
||||||
|
command = "/bin/bash scripts/actions/public_private"
|
||||||
|
accepted_return_codes = [0]
|
||||||
|
description = "Change the public access of the app."
|
||||||
|
|
||||||
|
[public_private.arguments]
|
||||||
|
[public_private.arguments.is_public]
|
||||||
|
type = "boolean"
|
||||||
|
ask = "Is it a public app ?"
|
||||||
|
default = true
|
|
@ -5,6 +5,41 @@ name = "Wordpress configuration panel"
|
||||||
name = "Wordpress configuration"
|
name = "Wordpress configuration"
|
||||||
|
|
||||||
|
|
||||||
|
[main.is_public]
|
||||||
|
name = "Public access"
|
||||||
|
|
||||||
|
[main.is_public.is_public]
|
||||||
|
ask = "Is it a public WordPress site ?"
|
||||||
|
type = "boolean"
|
||||||
|
default = true
|
||||||
|
|
||||||
|
|
||||||
|
[main.overwrite_files]
|
||||||
|
name = "Overwriting config files"
|
||||||
|
|
||||||
|
[main.overwrite_files.overwrite_nginx]
|
||||||
|
ask = "Overwrite the nginx config file ?"
|
||||||
|
type = "boolean"
|
||||||
|
default = true
|
||||||
|
help = "If the file is overwritten, a backup will be created."
|
||||||
|
|
||||||
|
[main.overwrite_files.overwrite_phpfpm]
|
||||||
|
ask = "Overwrite the php-fpm config file ?"
|
||||||
|
type = "boolean"
|
||||||
|
default = true
|
||||||
|
help = "If the file is overwritten, a backup will be created."
|
||||||
|
|
||||||
|
|
||||||
|
[main.global_config]
|
||||||
|
name = "Global configuration"
|
||||||
|
|
||||||
|
[main.global_config.email_type]
|
||||||
|
ask = "Send HTML email to admin ?"
|
||||||
|
type = "boolean"
|
||||||
|
default = true
|
||||||
|
help = "Allow app scripts to send HTML mails instead of plain text."
|
||||||
|
|
||||||
|
|
||||||
[main.php_fpm_config]
|
[main.php_fpm_config]
|
||||||
name = "PHP-FPM configuration"
|
name = "PHP-FPM configuration"
|
||||||
|
|
||||||
|
|
73
scripts/actions/public_private
Executable file
73
scripts/actions/public_private
Executable file
|
@ -0,0 +1,73 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# GENERIC STARTING
|
||||||
|
#=================================================
|
||||||
|
# IMPORT GENERIC HELPERS
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# RETRIEVE ARGUMENTS
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
# Get is_public
|
||||||
|
is_public=${YNH_ACTION_IS_PUBLIC}
|
||||||
|
|
||||||
|
app=${YNH_APP_INSTANCE_NAME:-$YNH_APP_ID}
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# CHECK IF ARGUMENTS ARE CORRECT
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# CHECK IF AN ACTION HAS TO BE DONE
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
is_public_old=$(ynh_app_setting_get --app=$app --key=is_public)
|
||||||
|
|
||||||
|
if [ $is_public -eq $is_public_old ]
|
||||||
|
then
|
||||||
|
ynh_die --message="is_public is already set as $is_public." --ret_code=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# SPECIFIC ACTION
|
||||||
|
#=================================================
|
||||||
|
# MOVE TO PUBLIC OR PRIVATE
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
if [ $is_public -eq 0 ]; then
|
||||||
|
public_private="private"
|
||||||
|
else
|
||||||
|
public_private="public"
|
||||||
|
fi
|
||||||
|
ynh_script_progression --message="Moving the application to $public_private..." --weight=3
|
||||||
|
|
||||||
|
if [ $is_public -eq 0 ]
|
||||||
|
then
|
||||||
|
ynh_app_setting_delete --app=$app --key=unprotected_uris
|
||||||
|
else
|
||||||
|
ynh_app_setting_set --app=$app --key=unprotected_uris --value="/"
|
||||||
|
fi
|
||||||
|
|
||||||
|
ynh_script_progression --message="Upgrading SSOwat configuration..."
|
||||||
|
# Regen ssowat configuration
|
||||||
|
yunohost app ssowatconf
|
||||||
|
|
||||||
|
# Update the config of the app
|
||||||
|
ynh_app_setting_set --app=$app --key=is_public --value=$is_public
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# RELOAD NGINX
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Reloading nginx web server..."
|
||||||
|
|
||||||
|
ynh_systemd_action --service_name=nginx --action=reload
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# END OF SCRIPT
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
ynh_script_progression --message="Execution completed" --last
|
|
@ -25,6 +25,22 @@ app=${YNH_APP_INSTANCE_NAME:-$YNH_APP_ID}
|
||||||
# If the form has a value for a variable, take the value from the form,
|
# If the form has a value for a variable, take the value from the form,
|
||||||
# Otherwise, keep the value from the app config.
|
# Otherwise, keep the value from the app config.
|
||||||
|
|
||||||
|
# is_public
|
||||||
|
old_is_public="$(ynh_app_setting_get --app=$app --key=is_public)"
|
||||||
|
is_public="${YNH_CONFIG_MAIN_IS_PUBLIC_IS_PUBLIC:-$old_is_public}"
|
||||||
|
|
||||||
|
# Overwrite nginx configuration
|
||||||
|
old_overwrite_nginx="$(ynh_app_setting_get --app=$app --key=overwrite_nginx)"
|
||||||
|
overwrite_nginx="${YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_NGINX:-$old_overwrite_nginx}"
|
||||||
|
|
||||||
|
# Overwrite php-fpm configuration
|
||||||
|
old_overwrite_phpfpm="$(ynh_app_setting_get --app=$app --key=overwrite_phpfpm)"
|
||||||
|
overwrite_phpfpm="${YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_PHPFPM:-$old_overwrite_phpfpm}"
|
||||||
|
|
||||||
|
# Type of admin mail configuration
|
||||||
|
old_admin_mail_html="$(ynh_app_setting_get $app admin_mail_html)"
|
||||||
|
admin_mail_html="${YNH_CONFIG_MAIN_GLOBAL_CONFIG_EMAIL_TYPE:-$old_admin_mail_html}"
|
||||||
|
|
||||||
# Footprint for php-fpm
|
# Footprint for php-fpm
|
||||||
old_fpm_footprint="$(ynh_app_setting_get --app=$app --key=fpm_footprint)"
|
old_fpm_footprint="$(ynh_app_setting_get --app=$app --key=fpm_footprint)"
|
||||||
fpm_footprint="${YNH_CONFIG_MAIN_PHP_FPM_CONFIG_FOOTPRINT:-$old_fpm_footprint}"
|
fpm_footprint="${YNH_CONFIG_MAIN_PHP_FPM_CONFIG_FOOTPRINT:-$old_fpm_footprint}"
|
||||||
|
@ -53,6 +69,13 @@ show_config() {
|
||||||
# here you are supposed to read some config file/database/other then print the values
|
# here you are supposed to read some config file/database/other then print the values
|
||||||
# ynh_return "YNH_CONFIG_${PANEL_ID}_${SECTION_ID}_${OPTION_ID}=value"
|
# ynh_return "YNH_CONFIG_${PANEL_ID}_${SECTION_ID}_${OPTION_ID}=value"
|
||||||
|
|
||||||
|
ynh_return "YNH_CONFIG_MAIN_IS_PUBLIC_IS_PUBLIC=$is_public"
|
||||||
|
|
||||||
|
ynh_return "YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_NGINX=$overwrite_nginx"
|
||||||
|
ynh_return "YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_PHPFPM=$overwrite_phpfpm"
|
||||||
|
|
||||||
|
ynh_return "YNH_CONFIG_MAIN_GLOBAL_CONFIG_EMAIL_TYPE=$admin_mail_html"
|
||||||
|
|
||||||
ynh_return "YNH_CONFIG_MAIN_PHP_FPM_CONFIG_FOOTPRINT=$fpm_footprint"
|
ynh_return "YNH_CONFIG_MAIN_PHP_FPM_CONFIG_FOOTPRINT=$fpm_footprint"
|
||||||
ynh_return "YNH_CONFIG_MAIN_PHP_FPM_CONFIG_FREE_FOOTPRINT=$free_footprint"
|
ynh_return "YNH_CONFIG_MAIN_PHP_FPM_CONFIG_FREE_FOOTPRINT=$free_footprint"
|
||||||
ynh_return "YNH_CONFIG_MAIN_PHP_FPM_CONFIG_USAGE=$fpm_usage"
|
ynh_return "YNH_CONFIG_MAIN_PHP_FPM_CONFIG_USAGE=$fpm_usage"
|
||||||
|
@ -64,6 +87,31 @@ show_config() {
|
||||||
|
|
||||||
apply_config() {
|
apply_config() {
|
||||||
|
|
||||||
|
# Change public accessibility
|
||||||
|
if [ "$is_public" = "true" ]
|
||||||
|
then
|
||||||
|
yunohost app action run $app public_private --args is_public=1
|
||||||
|
else
|
||||||
|
yunohost app action run $app public_private --args is_public=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# MODIFY OVERWRITTING SETTINGS
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
# Set overwrite_nginx
|
||||||
|
ynh_app_setting_set --app=$app --key=overwrite_nginx --value="$overwrite_nginx"
|
||||||
|
|
||||||
|
# Set overwrite_phpfpm
|
||||||
|
ynh_app_setting_set --app=$app --key=overwrite_phpfpm --value="$overwrite_phpfpm"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# MODIFY EMAIL SETTING
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
# Set admin_mail_html
|
||||||
|
ynh_app_setting_set --app=$app --key=admin_mail_html --value="$admin_mail_html"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# RECONFIGURE PHP-FPM
|
# RECONFIGURE PHP-FPM
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
|
@ -57,6 +57,10 @@ ynh_app_setting_set --app=$app --key=is_public --value=$is_public
|
||||||
ynh_app_setting_set --app=$app --key=language --value=$language
|
ynh_app_setting_set --app=$app --key=language --value=$language
|
||||||
ynh_app_setting_set --app=$app --key=multisite --value=$multisite
|
ynh_app_setting_set --app=$app --key=multisite --value=$multisite
|
||||||
|
|
||||||
|
ynh_app_setting_set --app=$app --key=overwrite_nginx --value=1
|
||||||
|
ynh_app_setting_set --app=$app --key=overwrite_phpfpm --value=1
|
||||||
|
ynh_app_setting_set --app=$app --key=admin_mail_html --value=1
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# STANDARD MODIFICATIONS
|
# STANDARD MODIFICATIONS
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
|
@ -26,6 +26,10 @@ multisite=$(ynh_app_setting_get --app=$app --key=multisite)
|
||||||
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
||||||
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
|
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
|
||||||
|
|
||||||
|
overwrite_nginx=$(ynh_app_setting_get --app=$app --key=overwrite_nginx)
|
||||||
|
overwrite_phpfpm=$(ynh_app_setting_get --app=$app --key=overwrite_phpfpm)
|
||||||
|
admin_mail_html=$(ynh_app_setting_get --app=$app --key=admin_mail_html)
|
||||||
|
|
||||||
fpm_footprint=$(ynh_app_setting_get --app=$app --key=fpm_footprint)
|
fpm_footprint=$(ynh_app_setting_get --app=$app --key=fpm_footprint)
|
||||||
fpm_usage=$(ynh_app_setting_get --app=$app --key=fpm_usage)
|
fpm_usage=$(ynh_app_setting_get --app=$app --key=fpm_usage)
|
||||||
|
|
||||||
|
@ -87,6 +91,24 @@ if grep add_filter.*auto_update $final_path/wp-config.php; then
|
||||||
sed --in-place '/add_filter.*auto_update/d' $final_path/wp-config.php
|
sed --in-place '/add_filter.*auto_update/d' $final_path/wp-config.php
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# If admin_mail_html doesn't exist, create it
|
||||||
|
if [ -z "$admin_mail_html" ]; then
|
||||||
|
admin_mail_html=1
|
||||||
|
ynh_app_setting_set --app=$app --key=admin_mail_html --value=$admin_mail_html
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If overwrite_nginx doesn't exist, create it
|
||||||
|
if [ -z "$overwrite_nginx" ]; then
|
||||||
|
overwrite_nginx=1
|
||||||
|
ynh_app_setting_set $app overwrite_nginx $overwrite_nginx
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If overwrite_phpfpm doesn't exist, create it
|
||||||
|
if [ -z "$overwrite_phpfpm" ]; then
|
||||||
|
overwrite_phpfpm=1
|
||||||
|
ynh_app_setting_set --app=$app --key=overwrite_phpfpm --value=$overwrite_phpfpm
|
||||||
|
fi
|
||||||
|
|
||||||
# If the app is private, set the usage to low, otherwise to high.
|
# If the app is private, set the usage to low, otherwise to high.
|
||||||
if [ $is_public -eq 0 ]
|
if [ $is_public -eq 0 ]
|
||||||
then
|
then
|
||||||
|
@ -94,6 +116,7 @@ then
|
||||||
else
|
else
|
||||||
usage=high
|
usage=high
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If fpm_footprint doesn't exist, create it
|
# If fpm_footprint doesn't exist, create it
|
||||||
if [ -z "$fpm_footprint" ]; then
|
if [ -z "$fpm_footprint" ]; then
|
||||||
fpm_footprint=$usage
|
fpm_footprint=$usage
|
||||||
|
@ -152,10 +175,13 @@ ynh_install_app_dependencies php5-cli
|
||||||
#=================================================
|
#=================================================
|
||||||
# NGINX CONFIGURATION
|
# NGINX CONFIGURATION
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Upgrading nginx web server configuration..." --weight=2
|
|
||||||
|
|
||||||
# Create a dedicated nginx config
|
# Overwrite the nginx configuration only if it's allowed
|
||||||
ynh_add_nginx_config
|
if [ $overwrite_nginx -eq 1 ]
|
||||||
|
then
|
||||||
|
ynh_script_progression --message="Upgrading nginx web server configuration..." --weight=2
|
||||||
|
ynh_add_nginx_config
|
||||||
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# CREATE DEDICATED USER
|
# CREATE DEDICATED USER
|
||||||
|
@ -168,10 +194,14 @@ ynh_system_user_create --username=$app
|
||||||
#=================================================
|
#=================================================
|
||||||
# PHP-FPM CONFIGURATION
|
# PHP-FPM CONFIGURATION
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Upgrading php-fpm configuration..." --weight=4
|
|
||||||
|
|
||||||
# Create a dedicated php-fpm config
|
# Overwrite the php-fpm configuration only if it's allowed
|
||||||
ynh_add_fpm_config --usage=$fpm_usage --footprint=$fpm_footprint
|
if [ $overwrite_phpfpm -eq 1 ]
|
||||||
|
then
|
||||||
|
ynh_script_progression --message="Upgrading php-fpm configuration..." --weight=4
|
||||||
|
# Create a dedicated php-fpm config
|
||||||
|
ynh_add_fpm_config --usage=$fpm_usage --footprint=$fpm_footprint
|
||||||
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SPECIFIC UPGRADE
|
# SPECIFIC UPGRADE
|
||||||
|
|
Loading…
Add table
Reference in a new issue