diff --git a/scripts/_variables b/scripts/_variables index 7eb4c6b..cb5e577 100644 --- a/scripts/_variables +++ b/scripts/_variables @@ -6,9 +6,9 @@ abiword_app_depencencies="abiword" # Dependencies for libre office libreoffice_app_dependencies="unoconv libreoffice-writer" -# Version of nodejs +# NodeJS version nodejs_version=6 -# Version of mypads +# Mypads version # This variable is mostly used to force an upgrade of the package in case of new versions of mypads. mypads_version=1.6.8 diff --git a/scripts/backup b/scripts/backup index 9bd8e1e..383b2f0 100644 --- a/scripts/backup +++ b/scripts/backup @@ -29,20 +29,20 @@ db_name=$(ynh_app_setting_get $app db_name) #================================================= # STANDARD BACKUP STEPS #================================================= -# BACKUP OF THE MAIN DIR OF THE APP +# BACKUP THE APP MAIN DIR #================================================= CHECK_SIZE "$final_path" ynh_backup "$final_path" #================================================= -# BACKUP OF THE NGINX CONFIGURATION +# BACKUP NGINX CONFIGURATION #================================================= ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" #================================================= -# BACKUP OF THE SQL BDD +# BACKUP THE MYSQL DATABASE #================================================= ynh_mysql_dump_db "$db_name" > db.sql diff --git a/scripts/change_url b/scripts/change_url index 25b00ef..6922643 100644 --- a/scripts/change_url +++ b/scripts/change_url @@ -67,7 +67,7 @@ fi #================================================= ynh_clean_setup () { -# Nettoyage des résidus d'installation non pris en charge par le script remove. +# Clean installation remaining that are not handle by the remove script. ynh_clean_check_starting } # Exit if an error occurs during the execution of the script @@ -119,7 +119,7 @@ ynh_systemd_action --action=reload --service_name=nginx # CHECK ETHERPAD STARTING #================================================= -# Wait for etherpad fully started +# Wait for etherpad to be fully started ynh_systemd_action --action=restart --line_match="You can access your Etherpad instance at" --log_path="/var/log/$app/etherpad.log" --timeout="120" #================================================= diff --git a/scripts/install b/scripts/install index a1bfbe2..16708fa 100644 --- a/scripts/install +++ b/scripts/install @@ -16,10 +16,11 @@ source _variables #================================================= ynh_clean_setup () { -# Nettoyage des résidus d'installation non pris en charge par le script remove. +# Clean installation remaining that are not handle by the remove script. ynh_clean_check_starting } -ynh_abort_if_errors # Active trap pour arrêter le script si une erreur est détectée. +# Exit if an error occurs during the execution of the script +ynh_abort_if_errors #================================================= # RETRIEVE ARGUMENTS FROM THE MANIFEST @@ -44,7 +45,7 @@ app=$YNH_APP_INSTANCE_NAME ynh_print_OFF if [ "${#password}" -lt 8 ] || [ "${#password}" -gt 30 ] then - ynh_die "The password must have between 8 and 30 characters." + ynh_die "The password must be between 8 and 30 characters." fi ynh_print_ON @@ -77,7 +78,8 @@ ynh_app_setting_set $app useldap $useldap # FIND AND OPEN A PORT #================================================= -port=$(ynh_find_port 9001) # Look for an available port +# Find a free port +port=$(ynh_find_port 9001) ynh_app_setting_set $app port $port #================================================= @@ -97,7 +99,7 @@ fi ynh_install_nodejs $nodejs_version #================================================= -# CREATE A SQL DB +# CREATE A MYSQL DATABASE #================================================= db_name=$(ynh_sanitize_dbid $app) @@ -109,19 +111,22 @@ ynh_mysql_setup_db $db_name $db_name #================================================= ynh_app_setting_set $app final_path $final_path -ynh_setup_source "$final_path" # Download, check integrity and uncompress the source from app.src +# Download, check integrity and uncompress the source from app.src +ynh_setup_source "$final_path" #================================================= # NGINX CONFIGURATION #================================================= +# Create a dedicated nginx config ynh_add_nginx_config #================================================= # CREATE DEDICATED USER #================================================= -ynh_system_user_create $app $final_path # Create a dedicated system user +# Create a dedicated system user +ynh_system_user_create $app #================================================= # SPECIFIC SETUP @@ -143,7 +148,7 @@ ynh_use_logrotate # INSTALL ETHERPAD #================================================= -# Install dependencies and proceed with the installation +# Install dependencies and proceed to the installation ynh_use_nodejs "$final_path/bin/installDeps.sh" > $install_log 2>&1 npm install forever -g >> $install_log 2>&1 @@ -161,12 +166,16 @@ 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 - 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 + # Get abiword binary path + abiword_path=`which abiword` + # Set the path of abiword into etherpad config + ynh_replace_string "\"abiword\" : null" "\"abiword\" : \"$abiword_path\"" "$final_path/settings.json" 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 + # Get soffice binary path + soffice_path=`which soffice` + # Set the path of soffice into etherpad config + ynh_replace_string "\"soffice\" : null" "\"soffice\" : \"$soffice_path\"" "$final_path/settings.json" fi ynh_replace_string "__LANGUAGE__" "$language" "$final_path/settings.json" @@ -176,8 +185,10 @@ then ynh_replace_string "//noldap" "" "$final_path/settings.json" fi -ynh_store_file_checksum "$final_path/settings.json" # Store config file checksum -ynh_store_file_checksum "$final_path/credentials.json" # Store config file checksum +# Calculate and store the config file checksum into the app settings +ynh_store_file_checksum "$final_path/settings.json" +# Calculate and store the config file checksum into the app settings +ynh_store_file_checksum "$final_path/credentials.json" #================================================= # SECURING FILES AND DIRECTORIES @@ -185,20 +196,21 @@ ynh_store_file_checksum "$final_path/credentials.json" # Store config file check # Set files ownership to etherpad chown -R $app: $final_path -chmod 600 $final_path/credentials.json # Restrict access to credentials.json +# Restrict access to credentials.json +chmod 600 $final_path/credentials.json #================================================= # SETUP SYSTEMD #================================================= ynh_replace_string "__ENV_PATH__" "$PATH" "../conf/systemd.service" +# Create a dedicated systemd config ynh_add_systemd_config #================================================= -# ENABLE SERVICE IN ADMIN PANEL +# ADVERTISE SERVICE IN ADMIN PANEL #================================================= -# Add service to YunoHost monitoring panel yunohost service add $app --log "/var/log/$app/etherpad.log" #================================================= @@ -206,23 +218,38 @@ yunohost service add $app --log "/var/log/$app/etherpad.log" #================================================= pushd "$final_path" -npm install ep_align # Add Left/Center/Right/Justify to lines of text in a pad -npm install ep_author_hover >> $install_log 2>&1 # Framapad - Adds author names to span titles -npm install ep_automatic_logut >> $install_log 2>&1 # Automatically disconnects user after some period of time (Prevent server overload) -npm install ep_comments_page >> $install_log 2>&1 # Framapad - Adds comments on sidebar and link it to the text. -npm install ep_countable >> $install_log 2>&1 # Framapad - Displays paragraphs, sentences, words and characters counts. -npm install ep_delete_empty_pads >> $install_log 2>&1 # Framapad - Delete pads which were never edited -npm install ep_font_color >> $install_log 2>&1 # Framapad - Apply colors to fonts -npm install ep_headings2 >> $install_log 2>&1 # Framapad - Adds heading support to Etherpad Lite. -npm install ep_markdown >> $install_log 2>&1 # Framapad - Edit and Export as Markdown in Etherpad +# Add Left/Center/Right/Justify to lines of text in a pad +npm install ep_align >> $install_log 2>&1 +# Framapad - Adds author names to span titles +npm install ep_author_hover >> $install_log 2>&1 +# Automatically disconnects user after some period of time (Prevent server overload) +npm install ep_automatic_logut >> $install_log 2>&1 +# Framapad - Adds comments on sidebar and link it to the text. +npm install ep_comments_page >> $install_log 2>&1 +# Framapad - Displays paragraphs, sentences, words and characters counts. +npm install ep_countable >> $install_log 2>&1 +# Framapad - Delete pads which were never edited +npm install ep_delete_empty_pads >> $install_log 2>&1 +# Framapad - Apply colors to fonts +npm install ep_font_color >> $install_log 2>&1 +# Framapad - Adds heading support to Etherpad Lite. +npm install ep_headings2 >> $install_log 2>&1 +# Framapad - Edit and Export as Markdown in Etherpad +npm install ep_markdown >> $install_log 2>&1 if [ $mypads -eq 1 ]; then - npm install ep_mypads@${mypads_version} >> $install_log 2>&1 # Framapad - Groups and private pads for etherpad + # Framapad - Groups and private pads for etherpad + npm install ep_mypads@${mypads_version} >> $install_log 2>&1 fi -npm install ep_page_view >> $install_log 2>&1 # Framapad - Add support to do 'page view', with a toggle on/off option in Settings, also Page Breaks with Control Enter -npm install ep_spellcheck >> $install_log 2>&1 # Framapad - Add support to do 'Spell checking' -npm install ep_subscript_and_superscript >> $install_log 2>&1 # Framapad - Add support for Subscript and Superscript -npm install ep_table_of_contents >> $install_log 2>&1 # Framapad - View a table of contents for your pad -npm install ep_user_font_size >> $install_log 2>&1 # Framapad - User Pad Contents font size can be set in settings, this does not effect other peoples views +# Framapad - Add support to do 'page view', with a toggle on/off option in Settings, also Page Breaks with Control Enter +npm install ep_page_view >> $install_log 2>&1 +# Framapad - Add support to do 'Spell checking' +npm install ep_spellcheck >> $install_log 2>&1 +# Framapad - Add support for Subscript and Superscript +npm install ep_subscript_and_superscript >> $install_log 2>&1 +# Framapad - View a table of contents for your pad +npm install ep_table_of_contents >> $install_log 2>&1 +# Framapad - User Pad Contents font size can be set in settings, this does not effect other peoples views +npm install ep_user_font_size >> $install_log 2>&1 popd chown -R $app: $final_path/node_modules @@ -239,14 +266,17 @@ then ynh_replace_string "^ *\"FOOTER\": .*2.0" "& | Etherpad admin" $final_path/node_modules/ep_mypads/static/l10n/en.json ynh_replace_string "^ *\"FOOTER\": .*2.0" "& | Etherpad admin" $final_path/node_modules/ep_mypads/static/l10n/fr.json - mod_line=$(grep -nA5 "index.createOpenPad" $final_path/src/templates/index.html | grep "" | cut -d '-' -f 1) # Recherche le /div situé sous le champs d'ouverture de pad. - sed -i "$mod_line s@div>@&\n\t

Mypads
@" $final_path/src/templates/index.html # Pour ajouter un lien vers le plugin mypads depuis la page d'Etherpad. + # Find the /div just after the field to open a pad + mod_line=$(grep -nA5 "index.createOpenPad" $final_path/src/templates/index.html | grep "" | cut -d '-' -f 1) + # In order to add a link to mypads plugin. + sed -i "$mod_line s@div>@&\n\t

Mypads
@" $final_path/src/templates/index.html fi #================================================= # SETUP FAIL2BAN #================================================= +# Create a dedicated fail2ban config ynh_add_fail2ban_config --logpath="/var/log/nginx/$domain-access.log" --failregex=" .* .POST /mypads/api/auth/login HTTP/1.1. 400" --max_retry=5 #================================================= @@ -256,7 +286,8 @@ ynh_add_fail2ban_config --logpath="/var/log/nginx/$domain-access.log" --failrege if [ $is_public -eq 1 ]; then ynh_app_setting_set $app skipped_uris "/" else - ynh_app_setting_set $app skipped_uris "/admin" # etherpad admin page doesn't support SSO... + # etherpad admin page doesn't support SSO... + ynh_app_setting_set $app skipped_uris "/admin" fi #================================================= diff --git a/scripts/remove b/scripts/remove index ae5d971..eef8cd0 100755 --- a/scripts/remove +++ b/scripts/remove @@ -26,13 +26,15 @@ export=$(ynh_app_setting_get $app export) # STOP AND REMOVE SERVICE #================================================= +# Remove the dedicated systemd config ynh_remove_systemd_config #================================================= -# DISABLE SERVICE IN ADMIN PANEL +# REMOVE SERVICE FROM ADMIN PANEL #================================================= -if yunohost service status | grep -q $app # Check if service is declared in YunoHost +# Check if the service is declared in YunoHost +if yunohost service status | grep -q $app then ynh_print_info "Remove $app service" >&2 yunohost service remove $app @@ -44,6 +46,7 @@ fi if [ "$export" != "none" ] then + # Remove metapackage and its dependencies ynh_remove_app_dependencies fi @@ -54,33 +57,38 @@ fi ynh_remove_nodejs #================================================= -# REMOVE THE SQL DB +# REMOVE THE MYSQL DATABASE #================================================= -ynh_mysql_remove_db $db_name $db_name # Remove the database along with the associated user +# Remove a database if it exists, along with the associated user +ynh_mysql_remove_db $db_name $db_name #================================================= -# REMOVE THE MAIN DIR OF THE APP +# REMOVE APP MAIN DIR #================================================= -ynh_secure_remove "/var/www/$app" # Remove the app directory securely +# Remove the app directory securely +ynh_secure_remove "/var/www/$app" #================================================= -# REMOVE THE NGINX CONFIGURATION +# REMOVE NGINX CONFIGURATION #================================================= -ynh_remove_nginx_config # Remove the dedicated nginx config +# Remove the dedicated nginx config +ynh_remove_nginx_config #================================================= -# REMOVE THE LOGROTATE CONFIG +# REMOVE LOGROTATE CONFIGURATION #================================================= -ynh_remove_logrotate # Remove the app-specific logrotate config +# Remove the app-specific logrotate config +ynh_remove_logrotate #================================================= # REMOVE FAIL2BAN CONFIGURATION #================================================= +# Remove the dedicated fail2ban config ynh_remove_fail2ban_config #================================================= @@ -89,4 +97,5 @@ ynh_remove_fail2ban_config # REMOVE DEDICATED USER #================================================= +# Delete dedicated system user ynh_system_user_delete $app diff --git a/scripts/restore b/scripts/restore index 577f2cf..be3c222 100644 --- a/scripts/restore +++ b/scripts/restore @@ -16,7 +16,7 @@ source ../settings/scripts/_variables #================================================= ynh_clean_setup () { -# Nettoyage des résidus d'installation non pris en charge par le script remove. +# Clean installation remaining that are not handle by the remove script. ynh_clean_check_starting } # Exit if an error occurs during the execution of the script @@ -55,19 +55,19 @@ ynh_maintenance_mode_ON #================================================= # STANDARD RESTORE STEPS #================================================= -# RESTORE OF THE NGINX CONFIGURATION +# RESTORE THE NGINX CONFIGURATION #================================================= ynh_restore_file "/etc/nginx/conf.d/$domain.d/$app.conf" #================================================= -# RESTORE OF THE MAIN DIR OF THE APP +# RESTORE THE APP MAIN DIR #================================================= ynh_restore_file "$final_path" #================================================= -# RESTORE THE SQL DB +# RESTORE THE MYSQL DATABASE #================================================= db_pwd=$(ynh_app_setting_get $app mysqlpwd) @@ -78,7 +78,8 @@ ynh_mysql_connect_as $db_name $db_pwd $db_name < ./db.sql # RECREATE THE DEDICATED USER #================================================= -ynh_system_user_create $app $final_path # Recreate the dedicated user, if it doesn't exist +# Create the dedicated user (if not existing) +ynh_system_user_create $app #================================================= # SPECIFIC RESTORE @@ -121,14 +122,14 @@ npm cache clean npm install forever -g >> $install_log 2>&1 #================================================= -# SECURING FILES AND DIRECTORIES +# RESTORE USER RIGHTS #================================================= -# Set files ownership to etherpad +# Restore permissions on app files chown -R $app: $final_path #================================================= -# ENABLE SERVICE IN ADMIN PANEL +# ADVERTISE SERVICE IN ADMIN PANEL #================================================= yunohost service add $app --log "/var/log/$app/etherpad.log" @@ -138,7 +139,6 @@ yunohost service add $app --log "/var/log/$app/etherpad.log" #================================================= ynh_restore_file "/etc/systemd/system/$app.service" -## Démarrage auto du service systemctl enable $app.service #================================================= diff --git a/scripts/upgrade b/scripts/upgrade index 04ed654..6aca4d3 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -39,28 +39,32 @@ ynh_systemd_action --action=restart --line_match="You can access your Etherpad i upgrade_type=$(ynh_check_app_version_changed) #================================================= -# FIX OLD THINGS +# ENSURE DOWNWARD COMPATIBILITY #================================================= +# Convert is_public as a boolean if [ "$is_public" = "Yes" ]; then - ynh_app_setting_set $app is_public 1 # Convert is_public to boolean + 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 [ -z $db_name ]; then # If db_name setting doesn't exist +# If db_name setting doesn't exist +if [ -z $db_name ]; then db_name=$(ynh_sanitize_dbid $app) ynh_app_setting_set $app db_name $db_name fi -if [ -z $abiword ]; then # If abiword setting doesn't exist +# If abiword setting doesn't exist +if [ -z $abiword ]; then abiword=0 ynh_app_setting_set $app abiword $abiword fi -if [ -n $abiword ]; then # If abiword setting exists +# If abiword setting exists +if [ -n $abiword ]; then if [ $abiword -eq 1 ]; then export=abiword fi @@ -68,22 +72,26 @@ if [ -n $abiword ]; then # If abiword setting exists ynh_app_setting_delete $app abiword fi -if [ -z $export ]; then # If export setting doesn't exist +# If export setting doesn't exist +if [ -z $export ]; then export=none ynh_app_setting_set $app export $export fi -if [ -z $mypads ]; then # If mypads setting doesn't exist +# If mypads setting doesn't exist +if [ -z $mypads ]; then mypads=1 ynh_app_setting_set $app mypads $mypads fi -if [ -z $useldap ]; then # If useldap setting doesn't exist +# If useldap setting doesn't exist +if [ -z $useldap ]; then useldap=0 ynh_app_setting_set $app useldap $useldap fi -if [ -z $path_url ]; then # If path_url setting doesn't exist +# If path_url setting doesn't exist +if [ -z $path_url ]; then path_url="/" ynh_app_setting_set $app path $path_url fi @@ -95,10 +103,10 @@ fi # Backup the current version of the app ynh_backup_before_upgrade ynh_clean_setup () { - # Cleanup installatioNettoyage des résidus d'installation non pris en charge par le script remove. +# Clean installation remaining that are not handle by the remove script. ynh_clean_check_starting - # restore it if the upgrade fails + # Restore it if the upgrade fails ynh_restore_upgradebackup } # Exit if an error occurs during the execution of the script @@ -124,7 +132,8 @@ ynh_systemd_action --action=stop if [ "$upgrade_type" == "UPGRADE_APP" ] then - ynh_setup_source "$final_path" # Download, check integrity and uncompress the source from app.src + # Download, check integrity, uncompress and patch the source from app.src + ynh_setup_source "$final_path" fi #================================================= @@ -141,6 +150,7 @@ fi # NGINX CONFIGURATION #================================================= +# Create a dedicated nginx config ynh_add_nginx_config #================================================= @@ -182,8 +192,10 @@ done <<< "$(ls -1 "$final_path/node_modules" | grep "^ep_")") if [ "$upgrade_type" == "UPGRADE_APP" ] then - ynh_backup_if_checksum_is_different "$final_path/settings.json" # Verify the checksum and backup the file if it's different - ynh_backup_if_checksum_is_different "$final_path/credentials.json" # Verify the checksum and backup the file if it's different + # Verify the checksum of a file, stored by `ynh_store_file_checksum` in the install script. + ynh_backup_if_checksum_is_different "$final_path/settings.json" + # Verify the checksum of a file, stored by `ynh_store_file_checksum` in the install script. + ynh_backup_if_checksum_is_different "$final_path/credentials.json" 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" @@ -195,15 +207,20 @@ then ynh_print_OFF; ynh_replace_special_string "__PASSWD__" "$password" "$final_path/credentials.json"; ynh_print_ON 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 + # Get abiword binary path + abiword_path=`which abiword` + # Set the path of abiword into etherpad config + ynh_replace_string "\"abiword\" : null" "\"abiword\" : \"$abiword_path\"" "$final_path/settings.json" 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 + # Get soffice binary path + soffice_path=`which soffice` + # Set the path of soffice into etherpad config + ynh_replace_string "\"soffice\" : null" "\"soffice\" : \"$soffice_path\"" "$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 + # If upgrading from a version which doesn't support translations, set language to English by default + language=en ynh_app_setting_set $app language $language fi ynh_replace_string "__LANGUAGE__" "$language" "$final_path/settings.json" @@ -214,15 +231,18 @@ then ynh_replace_string "//noldap" "" "$final_path/settings.json" fi - ynh_store_file_checksum "$final_path/settings.json" # Recalculate and store the config file checksum into the app settings - ynh_store_file_checksum "$final_path/credentials.json" # Recalculate and store the config file checksum into the app settings + # Recalculate and store the checksum of the file for the next upgrade. + ynh_store_file_checksum "$final_path/settings.json" + # Recalculate and store the checksum of the file for the next upgrade. + ynh_store_file_checksum "$final_path/credentials.json" fi #================================================= # CREATE DEDICATED USER #================================================= -ynh_system_user_create $app $final_path # Create the dedicated user, if it doesn't exist +# Create a dedicated user (if not existing) +ynh_system_user_create $app #================================================= # SECURING FILES AND DIRECTORIES @@ -230,19 +250,22 @@ ynh_system_user_create $app $final_path # Create the dedicated user, if it doesn # Set files ownership to etherpad chown -R $app: $final_path -chmod 600 "$final_path/credentials.json" # Restrict access to credentials.json +chmod 600 "$final_path/credentials.json" +# Restrict access to credentials.json chown $app -R /var/log/$app/etherpad.log #================================================= # UPGRADE FAIL2BAN #================================================= +# Create a dedicated fail2ban config ynh_add_fail2ban_config --logpath="/var/log/nginx/$domain-access.log" --failregex=" .* .POST /mypads/api/auth/login HTTP/1.1. 400" --max_retry=5 #================================================= # SETUP LOGROTATE #================================================= +# Use logrotate to manage app-specific logfile(s) ynh_use_logrotate --non-append #================================================= @@ -250,6 +273,7 @@ ynh_use_logrotate --non-append #================================================= ynh_replace_string "__ENV_PATH__" "$PATH" "../conf/systemd.service" +# Create a dedicated systemd config ynh_add_systemd_config #================================================= @@ -258,8 +282,10 @@ ynh_add_systemd_config if [ $mypads -eq 1 ] then - mod_line=$(grep -nA5 "index.createOpenPad" $final_path/src/templates/index.html | grep "" | cut -d '-' -f 1) # Recherche le /div situé sous le champs d'ouverture de pad. - sed -i "$mod_line s@div>@&\n\t

Mypads
@" $final_path/src/templates/index.html # Pour ajouter un lien vers le plugin mypads depuis la page d'Etherpad. + # Find the /div just after the field to open a pad + mod_line=$(grep -nA5 "index.createOpenPad" $final_path/src/templates/index.html | grep "" | cut -d '-' -f 1) + # In order to add a link to mypads plugin. + sed -i "$mod_line s@div>@&\n\t

Mypads
@" $final_path/src/templates/index.html fi #================================================= @@ -270,7 +296,8 @@ fi if [ $is_public -eq 1 ]; then ynh_app_setting_set $app skipped_uris "/" else - ynh_app_setting_set $app skipped_uris "/admin" # etherpad admin page doesn't support SSO... + # etherpad admin page doesn't support SSO... + ynh_app_setting_set $app skipped_uris "/admin" fi #=================================================