mirror of
https://github.com/YunoHost-Apps/wordpress_ynh.git
synced 2024-09-03 20:36:10 +02:00
Add action and config-panel feature
This commit is contained in:
parent
e5ec9b4a42
commit
88b430e1e9
6 changed files with 263 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
|
40
config_panel.toml
Normal file
40
config_panel.toml
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
version = "0.1"
|
||||||
|
name = "Wordpress configuration panel"
|
||||||
|
|
||||||
|
[main]
|
||||||
|
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."
|
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
|
100
scripts/config
Normal file
100
scripts/config
Normal file
|
@ -0,0 +1,100 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# GENERIC STARTING
|
||||||
|
#=================================================
|
||||||
|
# IMPORT GENERIC HELPERS
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
source _common.sh
|
||||||
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# RETRIEVE ARGUMENTS
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
app=${YNH_APP_INSTANCE_NAME:-$YNH_APP_ID}
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# LOAD VALUES
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
# Load the real value from the app config or elsewhere.
|
||||||
|
# Then get 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.
|
||||||
|
|
||||||
|
# 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}"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# SHOW_CONFIG FUNCTION FOR 'SHOW' COMMAND
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
show_config() {
|
||||||
|
# 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_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"
|
||||||
|
}
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# MODIFY THE CONFIGURATION
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
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"
|
||||||
|
}
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# GENERIC FINALIZATION
|
||||||
|
#=================================================
|
||||||
|
# SELECT THE ACTION FOLLOWING THE GIVEN ARGUMENT
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
show) show_config;;
|
||||||
|
apply) apply_config;;
|
||||||
|
esac
|
|
@ -56,6 +56,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
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
|
@ -25,6 +25,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)
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# CHECK VERSION
|
# CHECK VERSION
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -83,6 +87,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
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# STANDARD UPGRADE STEPS
|
# STANDARD UPGRADE STEPS
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -123,10 +145,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
|
||||||
|
@ -139,10 +164,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
|
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
|
||||||
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SPECIFIC UPGRADE
|
# SPECIFIC UPGRADE
|
||||||
|
|
Loading…
Add table
Reference in a new issue