1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/etherpad_mypads_ynh.git synced 2024-09-03 18:36:09 +02:00

Panel-config + actions fully tested

This commit is contained in:
Maniack Crudelis 2018-09-29 21:02:18 +02:00
parent 37bb93d4cc
commit 452bae7154
11 changed files with 424 additions and 108 deletions

View file

@ -30,4 +30,35 @@
"en": "List all existing pads.", "en": "List all existing pads.",
"fr": "Liste tout les pads existants." "fr": "Liste tout les pads existants."
} }
},
{
"id": "reset_default_config",
"name": "Reset the config file and restore a default one.",
"command": "/bin/bash scripts/actions/reset_default_config \"settings.json\"",
"user": "root",
"accepted_return_codes": [0],
"description": {
"en": "Reset the config file settings.json.",
"fr": "Réinitialise le fichier de configuration settings.json."
}
},
{
"id": "public_private",
"name": "Move to public or private",
"command": "/bin/bash scripts/actions/public_private",
"user": "root",
"accepted_return_codes": [0],
"description": {
"en": "Change the public access of the app."
},
"arguments": [
{
"name": "is_public",
"type": "boolean",
"ask": {
"en": "Is it a public app ?"
},
"default": true
}
]
}] }]

View file

@ -76,11 +76,43 @@
"name": "Public access", "name": "Public access",
"id": "is_public", "id": "is_public",
"options": [{ "options": [{
"name": "Is it a public website ?", "name": "Is it a public app ?",
"id": "is_public", "id": "is_public",
"type": "bool", "type": "bool",
"default": true "default": true
}] }]
},
{
"name": "Overwriting config files",
"id": "overwrite_files",
"options": [{
"name": "Overwrite the config file settings.json ?",
"help": "If the file is overwritten, a backup will be created.",
"id": "overwrite_settings",
"type": "bool",
"default": true
},
{
"name": "Overwrite the config file credentials.json ?",
"help": "If the file is overwritten, a backup will be created.",
"id": "overwrite_credentials",
"type": "bool",
"default": true
},
{
"name": "Overwrite the nginx config file ?",
"help": "If the file is overwritten, a backup will be created.",
"id": "overwrite_nginx",
"type": "bool",
"default": true
},
{
"name": "Overwrite the systemd config file ?",
"help": "If the file is overwritten, a backup will be created.",
"id": "overwrite_systemd",
"type": "bool",
"default": true
}]
}] }]
} }
] ]

View file

@ -22,6 +22,24 @@ CHECK_SIZE () { # Vérifie avant chaque backup que l'espace est suffisant
fi fi
} }
#=================================================
# BOOLEAN CONVERTER
#=================================================
bool_to_01 () {
local var="$1"
[ "$var" = "true" ] && var=1
[ "$var" = "false" ] && var=0
echo "$var"
}
bool_to_true_false () {
local var="$1"
[ "$var" = "1" ] && var=true
[ "$var" = "0" ] && var=false
echo "$var"
}
#================================================= #=================================================
# EXPERIMENTAL HELPERS # EXPERIMENTAL HELPERS
#================================================= #=================================================

View file

@ -13,7 +13,7 @@ source /usr/share/yunohost/helpers
# RETRIEVE ARGUMENTS # RETRIEVE ARGUMENTS
#================================================= #=================================================
app=$YNH_APP_INSTANCE_NAME app=${YNH_APP_INSTANCE_NAME:-$YNH_APP_ID}
#================================================= #=================================================
# CHECK IF ARGUMENTS ARE CORRECT # CHECK IF ARGUMENTS ARE CORRECT

View file

@ -13,7 +13,7 @@ source /usr/share/yunohost/helpers
# RETRIEVE ARGUMENTS # RETRIEVE ARGUMENTS
#================================================= #=================================================
app=$YNH_APP_INSTANCE_NAME app=${YNH_APP_INSTANCE_NAME:-$YNH_APP_ID}
#================================================= #=================================================
# CHECK IF ARGUMENTS ARE CORRECT # CHECK IF ARGUMENTS ARE CORRECT

View file

@ -13,7 +13,7 @@ source /usr/share/yunohost/helpers
# RETRIEVE ARGUMENTS # RETRIEVE ARGUMENTS
#================================================= #=================================================
app=$YNH_APP_INSTANCE_NAME app=${YNH_APP_INSTANCE_NAME:-$YNH_APP_ID}
db_name=$(ynh_app_setting_get $app db_name) db_name=$(ynh_app_setting_get $app db_name)
db_pwd=$(ynh_app_setting_get $app mysqlpwd) db_pwd=$(ynh_app_setting_get $app mysqlpwd)

58
scripts/actions/public_private Executable file
View file

@ -0,0 +1,58 @@
#!/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 is_public)
if [ $is_public -eq $is_public_old ]
then
ynh_die "is_public is already set as $is_public." 0
fi
#=================================================
# SPECIFIC ACTION
#=================================================
# MOVE TO PUBLIC OR PRIVATE
#=================================================
if [ $is_public -eq 0 ]
then
ynh_app_setting_set $app skipped_uris "/admin" # etherpad admin page doesn't support SSO...
else
ynh_app_setting_set $app skipped_uris "/"
fi
# Regen ssowat configuration
yunohost app ssowatconf
# Update the config of the app
ynh_app_setting_set $app is_public $is_public
#=================================================
# RELOAD NGINX
#=================================================
systemctl reload nginx

View file

@ -0,0 +1,72 @@
#!/bin/bash
#=================================================
# GENERIC STARTING
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
source scripts/_common.sh
source /usr/share/yunohost/helpers
#=================================================
# RETRIEVE ARGUMENTS
#=================================================
app=${YNH_APP_INSTANCE_NAME:-$YNH_APP_ID}
final_path=$(ynh_app_setting_get $app final_path)
port=$(ynh_app_setting_get $app port)
export=$(ynh_app_setting_get $app export)
language=$(ynh_app_setting_get $app language)
mypads=$(ynh_app_setting_get $app mypads)
useldap=$(ynh_app_setting_get $app useldap)
#=================================================
# SORT OUT THE CONFIG FILE TO HANDLE
#=================================================
file="$1"
if [ "$file" = "settings.json" ]; then
config_file="$final_path/settings.json"
fi
#=================================================
# SPECIFIC ACTION
#=================================================
# RESET THE CONFIG FILE
#=================================================
# Verify the checksum and backup the file if it's different
ynh_backup_if_checksum_is_different "$config_file"
if [ "$file" = "settings.json" ]
then
# Get the default file and overwrite the current config
cp /etc/yunohost/apps/$app/conf/settings.json "$config_file"
# Recreate the default config
ynh_replace_string "__PORT__" "$port" "$final_path/settings.json"
if [ "$export" = "abiword" ]
then
abiword_path=`which abiword` # Get abiword binary path
ynh_replace_string "\"abiword\" : null" "\"abiword\" : \"$abiword_path\"" "$final_path/settings.json" # Renseigne l'emplacement de abiword dans la config de etherpad
elif [ "$export" = "libreoffice" ]
then
soffice_path=`which soffice` # Get soffice binary path
ynh_replace_string "\"soffice\" : null" "\"soffice\" : \"$soffice_path\"" "$final_path/settings.json" # Renseigne l'emplacement de abiword dans la config de etherpad
fi
ynh_replace_string "__LANGUAGE__" "$language" "$final_path/settings.json"
# Use ldap for mypads
if [ $mypads -eq 1 ] && [ $useldap -eq 1 ]
then
ynh_replace_string "//noldap\(.*\)" "\1 //useldap" "$final_path/settings.json"
fi
fi
# Calculate and store the config file checksum into the app settings
ynh_store_file_checksum "$config_file"
# Wait for etherpad to be fully started
ynh_check_starting "You can access your Etherpad instance at" "/var/log/$app/etherpad.log" "120"

View file

@ -15,7 +15,7 @@ source _variables
# RETRIEVE ARGUMENTS # RETRIEVE ARGUMENTS
#================================================= #=================================================
app=$YNH_APP_INSTANCE_NAME app=${YNH_APP_INSTANCE_NAME:-$YNH_APP_ID}
final_path=$(ynh_app_setting_get $app final_path) final_path=$(ynh_app_setting_get $app final_path)
@ -38,60 +38,75 @@ get_config_value() {
# LOAD VALUES # LOAD VALUES
#================================================= #=================================================
# Load the real value from the app config or elsewhere. # Load the real value from the app config or elsewhere.
# Then get the value from the form. # Then get the value from the form.
# 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.
# Export # Export
old_export="$(ynh_app_setting_get $app export)" old_export="$(ynh_app_setting_get $app export)"
export="${YNH_CONFIG_MAIN_EXPORT_EXPORT:-$old_export}" export="${YNH_CONFIG_MAIN_EXPORT_EXPORT:-$old_export}"
# padOptions noColors # padOptions noColors
old_pad_config_nocolors="$(get_config_value noColors)" old_pad_config_nocolors="$(get_config_value noColors)"
pad_config_nocolors="${YNH_CONFIG_MAIN_PAD_CONFIGURATION_PAD_CONFIG_NOCOLORS:-$old_pad_config_nocolors}" pad_config_nocolors="${YNH_CONFIG_MAIN_PAD_CONFIGURATION_PAD_CONFIG_NOCOLORS:-$old_pad_config_nocolors}"
# padOptions showLineNumbers # padOptions showLineNumbers
old_pad_config_showlinenumbers="$(get_config_value showLineNumbers)" old_pad_config_showlinenumbers="$(get_config_value showLineNumbers)"
pad_config_showlinenumbers="${YNH_CONFIG_MAIN_PAD_CONFIGURATION_PAD_CONFIG_SHOWLINENUMBERS:-$old_pad_config_showlinenumbers}" pad_config_showlinenumbers="${YNH_CONFIG_MAIN_PAD_CONFIGURATION_PAD_CONFIG_SHOWLINENUMBERS:-$old_pad_config_showlinenumbers}"
# padOptions chatAndUsers # padOptions chatAndUsers
old_pad_config_chatandusers="$(get_config_value chatAndUsers)" old_pad_config_chatandusers="$(get_config_value chatAndUsers)"
pad_config_chatandusers="${YNH_CONFIG_MAIN_PAD_CONFIGURATION_PAD_CONFIG_CHATANDUSERS:-$old_pad_config_chatandusers}" pad_config_chatandusers="${YNH_CONFIG_MAIN_PAD_CONFIGURATION_PAD_CONFIG_CHATANDUSERS:-$old_pad_config_chatandusers}"
# padOptions alwaysShowChat # padOptions alwaysShowChat
old_pad_config_alwaysshowchat="$(get_config_value alwaysShowChat)" old_pad_config_alwaysshowchat="$(get_config_value alwaysShowChat)"
pad_config_alwaysshowchat="${YNH_CONFIG_MAIN_PAD_CONFIGURATION_PAD_CONFIG_ALWAYSSHOWCHAT:-$old_pad_config_alwaysshowchat}" pad_config_alwaysshowchat="${YNH_CONFIG_MAIN_PAD_CONFIGURATION_PAD_CONFIG_ALWAYSSHOWCHAT:-$old_pad_config_alwaysshowchat}"
# Plugin option ep_markdown_default # Plugin option ep_markdown_default
old_pad_config_show_markdown="$(get_config_value ep_markdown_default)" old_pad_config_show_markdown="$(get_config_value ep_markdown_default)"
pad_config_show_markdown="${YNH_CONFIG_MAIN_PAD_CONFIGURATION_PAD_CONFIG_SHOW_MARKDOWN:-$old_pad_config_show_markdown}" pad_config_show_markdown="${YNH_CONFIG_MAIN_PAD_CONFIGURATION_PAD_CONFIG_SHOW_MARKDOWN:-$old_pad_config_show_markdown}"
# Plugin option ep_page_view_default # Plugin option ep_page_view_default
old_pad_config_pageview="$(get_config_value ep_page_view_default)" old_pad_config_pageview="$(get_config_value ep_page_view_default)"
pad_config_pageview="${YNH_CONFIG_MAIN_PAD_CONFIGURATION_PAD_CONFIG_PAGEVIEW:-$old_pad_config_pageview}" pad_config_pageview="${YNH_CONFIG_MAIN_PAD_CONFIGURATION_PAD_CONFIG_PAGEVIEW:-$old_pad_config_pageview}"
# Mypads # Mypads
if [ -d $final_path/node_modules/ep_mypads ] if [ -d $final_path/node_modules/ep_mypads ]
then then
old_mypads=true old_mypads=true
else else
old_mypads=false old_mypads=false
fi fi
mypads="${YNH_CONFIG_MAIN_MYPADS_CONFIGURATION_MYPADS:-$old_mypads}" mypads="${YNH_CONFIG_MAIN_MYPADS_CONFIGURATION_MYPADS:-$old_mypads}"
# Ldap for Mypads # Ldap for Mypads
if grep -q "//noldap" $config_file if grep -q "//noldap" $config_file
then then
old_useldap=false old_useldap=false
else else
old_useldap=true old_useldap=true
fi fi
useldap="${YNH_CONFIG_MAIN_MYPADS_CONFIGURATION_USELDAP:-$old_useldap}" useldap="${YNH_CONFIG_MAIN_MYPADS_CONFIGURATION_USELDAP:-$old_useldap}"
# is_public # is_public
old_is_public="$(ynh_app_setting_get $app is_public)" old_is_public="$(ynh_app_setting_get $app is_public)"
if [ $old_is_public -eq 1 ] old_is_public=$(bool_to_true_false $old_is_public)
then is_public="${YNH_CONFIG_MAIN_IS_PUBLIC_IS_PUBLIC:-$old_is_public}"
old_is_public=true
else # Overwrite settings.json file
old_is_public=false old_overwrite_settings="$(ynh_app_setting_get $app overwrite_settings)"
fi old_overwrite_settings=$(bool_to_true_false $old_overwrite_settings)
is_public="${YNH_CONFIG_MAIN_IS_PUBLIC_IS_PUBLIC:-$old_is_public}" overwrite_settings="${YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_SETTINGS:-$old_overwrite_settings}"
# Overwrite credentials.json file
old_overwrite_credentials="$(ynh_app_setting_get $app overwrite_credentials)"
old_overwrite_credentials=$(bool_to_true_false $old_overwrite_credentials)
overwrite_credentials="${YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_CREDENTIALS:-$old_overwrite_credentials}"
# Overwrite nginx configuration
old_overwrite_nginx="$(ynh_app_setting_get $app overwrite_nginx)"
old_overwrite_nginx=$(bool_to_true_false $old_overwrite_nginx)
overwrite_nginx="${YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_NGINX:-$old_overwrite_nginx}"
# Overwrite systemd configuration
old_overwrite_systemd="$(ynh_app_setting_get $app overwrite_systemd)"
old_overwrite_systemd=$(bool_to_true_false $old_overwrite_systemd)
overwrite_systemd="${YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_SYSTEMD:-$old_overwrite_systemd}"
#================================================= #=================================================
# SHOW_CONFIG FUNCTION FOR 'SHOW' COMMAND # SHOW_CONFIG FUNCTION FOR 'SHOW' COMMAND
@ -114,6 +129,11 @@ show_config() {
echo "YNH_CONFIG_MAIN_MYPADS_CONFIGURATION_USELDAP=$useldap" echo "YNH_CONFIG_MAIN_MYPADS_CONFIGURATION_USELDAP=$useldap"
echo "YNH_CONFIG_MAIN_IS_PUBLIC_IS_PUBLIC=$is_public" echo "YNH_CONFIG_MAIN_IS_PUBLIC_IS_PUBLIC=$is_public"
echo "YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_SETTINGS=$overwrite_settings"
echo "YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_CREDENTIALS=$overwrite_credentials"
echo "YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_NGINX=$overwrite_nginx"
echo "YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_SYSTEMD=$overwrite_systemd"
} }
#================================================= #=================================================
@ -128,6 +148,7 @@ apply_config() {
if [ "$pad_config_nocolors" != "$old_pad_config_nocolors" ] if [ "$pad_config_nocolors" != "$old_pad_config_nocolors" ]
then then
ynh_replace_string "\(\"noColors\" *: \).*," "\1$pad_config_nocolors," "$config_file" ynh_replace_string "\(\"noColors\" *: \).*," "\1$pad_config_nocolors," "$config_file"
ynh_app_setting_set $app pad_config_nocolors "$pad_config_nocolors"
restart_etherpad=1 restart_etherpad=1
fi fi
@ -135,6 +156,7 @@ apply_config() {
if [ "$pad_config_showlinenumbers" != "$old_pad_config_showlinenumbers" ] if [ "$pad_config_showlinenumbers" != "$old_pad_config_showlinenumbers" ]
then then
ynh_replace_string "\(\"showLineNumbers\" *: \).*," "\1$pad_config_showlinenumbers," "$config_file" ynh_replace_string "\(\"showLineNumbers\" *: \).*," "\1$pad_config_showlinenumbers," "$config_file"
ynh_app_setting_set $app pad_config_showlinenumbers "$pad_config_showlinenumbers"
restart_etherpad=1 restart_etherpad=1
fi fi
@ -142,6 +164,7 @@ apply_config() {
if [ "$pad_config_chatandusers" != "$old_pad_config_chatandusers" ] if [ "$pad_config_chatandusers" != "$old_pad_config_chatandusers" ]
then then
ynh_replace_string "\(\"chatAndUsers\" *: \).*," "\1$pad_config_chatandusers," "$config_file" ynh_replace_string "\(\"chatAndUsers\" *: \).*," "\1$pad_config_chatandusers," "$config_file"
ynh_app_setting_set $app pad_config_chatandusers "$pad_config_chatandusers"
restart_etherpad=1 restart_etherpad=1
fi fi
@ -149,6 +172,7 @@ apply_config() {
if [ "$pad_config_alwaysshowchat" != "$old_pad_config_alwaysshowchat" ] if [ "$pad_config_alwaysshowchat" != "$old_pad_config_alwaysshowchat" ]
then then
ynh_replace_string "\(\"alwaysShowChat\" *: \).*," "\1$pad_config_alwaysshowchat," "$config_file" ynh_replace_string "\(\"alwaysShowChat\" *: \).*," "\1$pad_config_alwaysshowchat," "$config_file"
ynh_app_setting_set $app pad_config_alwaysshowchat "$pad_config_alwaysshowchat"
restart_etherpad=1 restart_etherpad=1
fi fi
@ -156,6 +180,7 @@ apply_config() {
if [ "$pad_config_show_markdown" != "$old_pad_config_show_markdown" ] if [ "$pad_config_show_markdown" != "$old_pad_config_show_markdown" ]
then then
ynh_replace_string "\(\"ep_markdown_default\" *: \).*," "\1$pad_config_show_markdown," "$config_file" ynh_replace_string "\(\"ep_markdown_default\" *: \).*," "\1$pad_config_show_markdown," "$config_file"
ynh_app_setting_set $app pad_config_show_markdown "$pad_config_show_markdown"
restart_etherpad=1 restart_etherpad=1
fi fi
@ -163,6 +188,7 @@ apply_config() {
if [ "$pad_config_pageview" != "$old_pad_config_pageview" ] if [ "$pad_config_pageview" != "$old_pad_config_pageview" ]
then then
ynh_replace_string "\(\"ep_page_view_default\" *: \).*," "\1$pad_config_pageview," "$config_file" ynh_replace_string "\(\"ep_page_view_default\" *: \).*," "\1$pad_config_pageview," "$config_file"
ynh_app_setting_set $app pad_config_pageview "$pad_config_pageview"
restart_etherpad=1 restart_etherpad=1
fi fi
@ -232,17 +258,23 @@ apply_config() {
# Change public accessibility # Change public accessibility
if [ "$is_public" = "true" ] if [ "$is_public" = "true" ]
then then
is_public=1 yunohost app action run $app public_private --args is_public=1
else else
is_public=0 yunohost app action run $app public_private --args is_public=0
fi fi
if [ $is_public -eq 1 ]; then
ynh_app_setting_set $app skipped_uris "/" # Set overwrite_settings
else overwrite_settings=$(bool_to_01 $overwrite_settings)
ynh_app_setting_set $app skipped_uris "/admin" # etherpad admin page doesn't support SSO... ynh_app_setting_set $app overwrite_settings "$overwrite_settings"
fi # Set overwrite_credentials
ynh_app_setting_set $app is_public $is_public overwrite_credentials=$(bool_to_01 $overwrite_credentials)
yunohost app ssowatconf ynh_app_setting_set $app overwrite_credentials "$overwrite_credentials"
# Set overwrite_nginx
overwrite_nginx=$(bool_to_01 $overwrite_nginx)
ynh_app_setting_set $app overwrite_nginx "$overwrite_nginx"
# Set overwrite_systemd
overwrite_systemd=$(bool_to_01 $overwrite_systemd)
ynh_app_setting_set $app overwrite_systemd "$overwrite_systemd"
} }
#================================================= #=================================================

View file

@ -72,6 +72,10 @@ ynh_app_setting_set $app language $language
ynh_app_setting_set $app export $export ynh_app_setting_set $app export $export
ynh_app_setting_set $app mypads $mypads ynh_app_setting_set $app mypads $mypads
ynh_app_setting_set $app useldap $useldap ynh_app_setting_set $app useldap $useldap
ynh_app_setting_set $app overwrite_settings "1"
ynh_app_setting_set $app overwrite_credentials "1"
ynh_app_setting_set $app overwrite_nginx "1"
ynh_app_setting_set $app overwrite_systemd "1"
#================================================= #=================================================
# ACTIVATE MAINTENANCE MODE # ACTIVATE MAINTENANCE MODE

View file

@ -28,6 +28,17 @@ export=$(ynh_app_setting_get $app export)
db_name=$(ynh_app_setting_get $app db_name) db_name=$(ynh_app_setting_get $app db_name)
mypads=$(ynh_app_setting_get $app mypads) mypads=$(ynh_app_setting_get $app mypads)
useldap=$(ynh_app_setting_get $app useldap) useldap=$(ynh_app_setting_get $app useldap)
overwrite_settings=$(ynh_app_setting_get $app overwrite_settings)
overwrite_credentials=$(ynh_app_setting_get $app overwrite_credentials)
overwrite_nginx=$(ynh_app_setting_get $app overwrite_nginx)
overwrite_systemd=$(ynh_app_setting_get $app overwrite_systemd)
# Optional parameters from config-panel feature
pad_config_nocolors=$(ynh_app_setting_get $app pad_config_nocolors)
pad_config_showlinenumbers=$(ynh_app_setting_get $app pad_config_showlinenumbers)
pad_config_chatandusers=$(ynh_app_setting_get $app pad_config_chatandusers)
pad_config_alwaysshowchat=$(ynh_app_setting_get $app pad_config_alwaysshowchat)
pad_config_show_markdown=$(ynh_app_setting_get $app pad_config_show_markdown)
#================================================= #=================================================
# CHECK VERSION # CHECK VERSION
@ -39,7 +50,7 @@ ynh_check_starting "You can access your Etherpad instance at" "/var/log/$app/eth
ynh_abort_if_up_to_date ynh_abort_if_up_to_date
#================================================= #=================================================
# FIX OLD THINGS # ENSURE DOWNWARD COMPATIBILITY
#================================================= #=================================================
if [ "$is_public" = "Yes" ]; then if [ "$is_public" = "Yes" ]; then
@ -50,17 +61,17 @@ elif [ "$is_public" = "No" ]; then
is_public=0 is_public=0
fi fi
if [ -z $db_name ]; then # If db_name setting doesn't exist if [ -z "$db_name" ]; then # If db_name setting doesn't exist
db_name=$(ynh_sanitize_dbid $app) db_name=$(ynh_sanitize_dbid $app)
ynh_app_setting_set $app db_name $db_name ynh_app_setting_set $app db_name $db_name
fi fi
if [ -z $abiword ]; then # If abiword setting doesn't exist if [ -z "$abiword" ]; then # If abiword setting doesn't exist
abiword=0 abiword=0
ynh_app_setting_set $app abiword $abiword ynh_app_setting_set $app abiword $abiword
fi fi
if [ -n $abiword ]; then # If abiword setting exists if [ -n "$abiword" ]; then # If abiword setting exists
if [ $abiword -eq 1 ]; then if [ $abiword -eq 1 ]; then
export=abiword export=abiword
fi fi
@ -68,26 +79,50 @@ if [ -n $abiword ]; then # If abiword setting exists
ynh_app_setting_delete $app abiword ynh_app_setting_delete $app abiword
fi fi
if [ -z $export ]; then # If export setting doesn't exist if [ -z "$export" ]; then # If export setting doesn't exist
export=none export=none
ynh_app_setting_set $app export $export ynh_app_setting_set $app export $export
fi fi
if [ -z $mypads ]; then # If mypads setting doesn't exist if [ -z "$mypads" ]; then # If mypads setting doesn't exist
mypads=1 mypads=1
ynh_app_setting_set $app mypads $mypads ynh_app_setting_set $app mypads $mypads
fi fi
if [ -z $useldap ]; then # If useldap setting doesn't exist if [ -z "$useldap" ]; then # If useldap setting doesn't exist
useldap=0 useldap=0
ynh_app_setting_set $app useldap $useldap ynh_app_setting_set $app useldap $useldap
fi fi
if [ -z $path_url ]; then # If path_url setting doesn't exist if [ -z "$path_url" ]; then # If path_url setting doesn't exist
path_url="/" path_url="/"
ynh_app_setting_set $app path $path_url ynh_app_setting_set $app path $path_url
fi fi
# If overwrite_settings doesn't exist, create it
if [ -z "$overwrite_settings" ]; then
overwrite_settings=1
ynh_app_setting_set $app overwrite_settings $overwrite_settings
fi
# If overwrite_credentials doesn't exist, create it
if [ -z "$overwrite_credentials" ]; then
overwrite_credentials=1
ynh_app_setting_set $app overwrite_credentials $overwrite_credentials
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_systemd doesn't exist, create it
if [ -z "$overwrite_systemd" ]; then
overwrite_systemd=1
ynh_app_setting_set $app overwrite_systemd $overwrite_systemd
fi
#================================================= #=================================================
# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP # BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
#================================================= #=================================================
@ -128,12 +163,16 @@ ynh_setup_source "$final_path" # Download, check integrity and uncompress the so
# NGINX CONFIGURATION # NGINX CONFIGURATION
#================================================= #=================================================
if [ "$path_url" != "/" ] # Overwrite the nginx configuration only if it's allowed
if [ $overwrite_nginx -eq 1 ]
then then
ynh_replace_string "^#sub_path_only" "" "../conf/nginx.conf" if [ "$path_url" != "/" ]
then
ynh_replace_string "^#sub_path_only" "" "../conf/nginx.conf"
fi
ynh_replace_string "__PATH__/" "${path_url%/}/" "../conf/nginx.conf"
ynh_add_nginx_config
fi fi
ynh_replace_string "__PATH__/" "${path_url%/}/" "../conf/nginx.conf"
ynh_add_nginx_config
#================================================= #=================================================
# UPGRADE NODEJS # UPGRADE NODEJS
@ -172,40 +211,66 @@ done <<< "$(ls -1 "$final_path/node_modules" | grep "^ep_")")
# CONFIGURE ETHERPAD # CONFIGURE ETHERPAD
#================================================= #=================================================
ynh_backup_if_checksum_is_different "$final_path/settings.json" # Verify the checksum and backup the file if it's different # Overwrite the settings config file only if it's allowed
ynh_backup_if_checksum_is_different "$final_path/credentials.json" # Verify the checksum and backup the file if it's different if [ $overwrite_settings -eq 1 ]
cp ../conf/settings.json "$final_path/settings.json"
cp ../conf/credentials.json "$final_path/credentials.json"
ynh_replace_string "__PORT__" "$port" "$final_path/settings.json"
ynh_replace_string "__DB_USER__" "$app" "$final_path/credentials.json"
db_pwd=$(ynh_app_setting_get $app mysqlpwd)
ynh_print_OFF; password=$(ynh_app_setting_get $app password); ynh_print_ON
ynh_replace_string "__DB_PWD__" "$db_pwd" "$final_path/credentials.json"
ynh_replace_string "__ADMIN__" "$admin" "$final_path/credentials.json"
ynh_print_OFF; ynh_replace_special_string "__PASSWD__" "$password" "$final_path/credentials.json"; ynh_print_ON
if [ "$export" = "abiword" ]
then then
abiword_path=`which abiword` # Get abiword binary path ynh_backup_if_checksum_is_different "$final_path/settings.json" # Verify the checksum and backup the file if it's different
ynh_replace_string "\"abiword\" : null" "\"abiword\" : \"$abiword_path\"" "$final_path/settings.json" # Renseigne l'emplacement de abiword dans la config de etherpad cp ../conf/settings.json "$final_path/settings.json"
elif [ "$export" = "libreoffice" ] ynh_replace_string "__PORT__" "$port" "$final_path/settings.json"
then if [ "$export" = "abiword" ]
soffice_path=`which soffice` # Get soffice binary path then
ynh_replace_string "\"soffice\" : null" "\"soffice\" : \"$soffice_path\"" "$final_path/settings.json" # Renseigne l'emplacement de abiword dans la config de etherpad abiword_path=`which abiword` # Get abiword binary path
fi ynh_replace_string "\"abiword\" : null" "\"abiword\" : \"$abiword_path\"" "$final_path/settings.json" # Renseigne l'emplacement de abiword dans la config de etherpad
if test -z $language; then elif [ "$export" = "libreoffice" ]
language=en # If upgrading from a version which doesn't support translations, set language to English by default then
ynh_app_setting_set $app language $language soffice_path=`which soffice` # Get soffice binary path
fi ynh_replace_string "\"soffice\" : null" "\"soffice\" : \"$soffice_path\"" "$final_path/settings.json" # Renseigne l'emplacement de abiword dans la config de etherpad
ynh_replace_string "__LANGUAGE__" "$language" "$final_path/settings.json" fi
if test -z $language; then
language=en # If upgrading from a version which doesn't support translations, set language to English by default
ynh_app_setting_set $app language $language
fi
ynh_replace_string "__LANGUAGE__" "$language" "$final_path/settings.json"
# Use ldap for mypads
if [ $mypads -eq 1 ] && [ $useldap -eq 1 ]
then
ynh_replace_string "//noldap\(.*\)" "\1 //useldap" "$final_path/settings.json"
fi
# Use ldap for mypads # Optional parameters from config-panel feature
if [ $mypads -eq 1 ] && [ $useldap -eq 1 ] if [ -n "$pad_config_nocolors" ]; then
then ynh_replace_string "\(\"noColors\" *: \).*," "\1$pad_config_nocolors," "$final_path/settings.json"
ynh_replace_string "//noldap\(.*\)" "\1 //useldap" "$final_path/settings.json" fi
if [ -n "$pad_config_showlinenumbers" ]; then
ynh_replace_string "\(\"showLineNumbers\" *: \).*," "\1$pad_config_showlinenumbers," "$final_path/settings.json"
fi
if [ -n "$pad_config_chatandusers" ]; then
ynh_replace_string "\(\"chatAndUsers\" *: \).*," "\1$pad_config_chatandusers," "$final_path/settings.json"
fi
if [ -n "$pad_config_alwaysshowchat" ]; then
ynh_replace_string "\(\"alwaysShowChat\" *: \).*," "\1$pad_config_alwaysshowchat," "$final_path/settings.json"
fi
if [ -n "$pad_config_show_markdown" ]; then
ynh_replace_string "\(\"ep_markdown_default\" *: \).*," "\1$pad_config_show_markdown," "$final_path/settings.json"
fi
ynh_store_file_checksum "$final_path/settings.json" # Recalculate and store the config file checksum into the app settings
fi fi
ynh_store_file_checksum "$final_path/settings.json" # Recalculate and store the config file checksum into the app settings # Overwrite the credentials config file only if it's allowed
ynh_store_file_checksum "$final_path/credentials.json" # Recalculate and store the config file checksum into the app settings if [ $overwrite_credentials -eq 1 ]
then
ynh_backup_if_checksum_is_different "$final_path/credentials.json" # Verify the checksum and backup the file if it's different
cp ../conf/credentials.json "$final_path/credentials.json"
ynh_replace_string "__DB_USER__" "$app" "$final_path/credentials.json"
db_pwd=$(ynh_app_setting_get $app mysqlpwd)
ynh_print_OFF; password=$(ynh_app_setting_get $app password); ynh_print_ON
ynh_replace_string "__DB_PWD__" "$db_pwd" "$final_path/credentials.json"
ynh_replace_string "__ADMIN__" "$admin" "$final_path/credentials.json"
ynh_print_OFF; ynh_replace_special_string "__PASSWD__" "$password" "$final_path/credentials.json"; ynh_print_ON
ynh_store_file_checksum "$final_path/credentials.json" # Recalculate and store the config file checksum into the app settings
fi
#================================================= #=================================================
# CREATE DEDICATED USER # CREATE DEDICATED USER
@ -238,8 +303,12 @@ ynh_use_logrotate --non-append
# SETUP SYSTEMD # SETUP SYSTEMD
#================================================= #=================================================
ynh_replace_string "__ENV_PATH__" "$PATH" "../conf/systemd.service" # Overwrite the systemd configuration only if it's allowed
ynh_add_systemd_config if [ $overwrite_systemd -eq 1 ]
then
ynh_replace_string "__ENV_PATH__" "$PATH" "../conf/systemd.service"
ynh_add_systemd_config
fi
#================================================= #=================================================
# SOME HACKS # SOME HACKS