mirror of
https://github.com/YunoHost-Apps/etherpad_mypads_ynh.git
synced 2024-09-03 18:36:09 +02:00
commit
eb0faeca15
10 changed files with 416 additions and 45 deletions
109
README.md
109
README.md
|
@ -1,45 +1,86 @@
|
|||
Etherpad with mypads plugin for YunoHost
|
||||
==================
|
||||
# Etherpad with mypads plugin for YunoHost
|
||||
|
||||
[Yunohost project](https://yunohost.org/#/)
|
||||
[](https://ci-apps.yunohost.org/jenkins/job/etherpad_mypads%20%28Community%29/lastBuild/consoleFull)
|
||||
[](https://install-app.yunohost.org/?app=etherpad_mypads)
|
||||
|
||||
Éditeur de texte collaboratif en ligne avec gestion utilisateurs et groupes.
|
||||
Ce package etherpad utilise les mêmes plugins que [Framapad](https://framapad.org/).
|
||||
> *This package allow you to install etherpad quickly and simply on a YunoHost server.
|
||||
If you don't have YunoHost, please see [here](https://yunohost.org/#/install) to know how to install and enjoy it.*
|
||||
|
||||
http://etherpad.org/
|
||||
https://git.framasoft.org/framasoft/ep_mypads
|
||||
## Overview
|
||||
Etherpad is a highly customizable Open Source online editor providing collaborative editing in really real-time.
|
||||
This package will install the same plugins than [Framapad](https://framapad.org/).
|
||||
|
||||
**En raison du plugin mypads, cette version d'etherpad doit être installée à la racine d'un domaine ou d'un sous-domaine dédié. Autrement, mypads sera inaccessible.**
|
||||
**Shipped version:** 1.6.2
|
||||
|
||||
**Mise à jour du package:**
|
||||
sudo yunohost app upgrade --verbose etherpad_mypads -u https://github.com/YunoHost-Apps/etherpad_mypads_ynh
|
||||
## Screenshots
|
||||
|
||||
**Multi-utilisateur:** Oui, sans support ldap.
|
||||

|
||||
|
||||
Ce package etherpad intègre les plugins suivant:
|
||||
## Configuration
|
||||
|
||||
- ep_align - *Add Left/Center/Right/Justify to lines of text in a pad*
|
||||
- ep_author_hover - *Adds author names to span titles*
|
||||
- ep_automatic_logut - *Automatically disconnects user after some period of time (Prevent server overload)*
|
||||
- ep_comments_page - *Adds comments on sidebar and link it to the text.*
|
||||
- ep_countable - *Displays paragraphs, sentences, words and characters counts.*
|
||||
- ep_delete_empty_pads - *Delete pads which were never edited*
|
||||
- ep_font_color - *Apply colors to fonts*
|
||||
- ep_headings2 - *Adds heading support to Etherpad Lite.*
|
||||
- ep_markdown - *Edit and Export as Markdown in Etherpad*
|
||||
- ep_mypads - *Groups and private pads for etherpad*
|
||||
- ep_page_view - *Add support to do 'page view', with a toggle on/off option in Settings, also Page Breaks with Control Enter*
|
||||
- ep_spellcheck - *Add support to do 'Spell checking'*
|
||||
- ep_subscript_and_superscript - *Add support for Subscript and Superscript*
|
||||
- ep_table_of_contents - *View a table of contents for your pad*
|
||||
- ep_user_font_size - *User Pad Contents font size can be set in settings, this does not effect other peoples views*
|
||||
You can access to 2 different admin panels, for etherpad by accessing `domain.tld/admin` and for mypads by `domain.tld/mypads/?/admin`
|
||||
Or, you can find a config file for etherpad at this path `/var/www/etherpad_mypads/settings.json`
|
||||
|
||||
## Documentation
|
||||
|
||||
* Official documentation: http://etherpad.org/doc/v1.6.2
|
||||
* YunoHost documentation: There no other documentations, feel free to contribute.
|
||||
|
||||
## YunoHost specific features
|
||||
|
||||
#### Multi-users support
|
||||
|
||||
Supported, **without LDAP nor SSO**.
|
||||
|
||||
#### Supported architectures
|
||||
|
||||
* Tested on x86_64
|
||||
|
||||
## Limitations
|
||||
|
||||
* If you ask to install the plugin mypads, you have to install in the root of a dedicated domain or a sub domain. Else, mypads will be inaccessible.
|
||||
|
||||
## Additionnal informations
|
||||
|
||||
* This package will install the following plugins:
|
||||
|
||||
* ep_align - *Add Left/Center/Right/Justify to lines of text in a pad*
|
||||
* ep_author_hover - *Adds author names to span titles*
|
||||
* ep_automatic_logut - *Automatically disconnects user after some period of time (Prevent server overload)*
|
||||
* ep_comments_page - *Adds comments on sidebar and link it to the text.*
|
||||
* ep_countable - *Displays paragraphs, sentences, words and characters counts.*
|
||||
* ep_delete_empty_pads - *Delete pads which were never edited*
|
||||
* ep_font_color - *Apply colors to fonts*
|
||||
* ep_headings2 - *Adds heading support to Etherpad Lite.*
|
||||
* ep_markdown - *Edit and Export as Markdown in Etherpad*
|
||||
* ep_mypads - *Groups and private pads for etherpad*
|
||||
* ep_page_view - *Add support to do 'page view', with a toggle on/off option in Settings, also Page Breaks with Control Enter*
|
||||
* ep_spellcheck - *Add support to do 'Spell checking'*
|
||||
* ep_subscript_and_superscript - *Add support for Subscript and Superscript*
|
||||
* ep_table_of_contents - *View a table of contents for your pad*
|
||||
* ep_user_font_size - *User Pad Contents font size can be set in settings, this does not effect other peoples views*
|
||||
|
||||
* Because there's no ldap support with mypads plugin, no user is created at the installation.
|
||||
You have to connect to the admin panel to create the first users.
|
||||
Login and password are those you chose during the installation.
|
||||
|
||||
## Links
|
||||
|
||||
* Report a bug: https://github.com/YunoHost-Apps/etherpad_mypads_ynh/issues
|
||||
* Etherpad website: http://etherpad.org/
|
||||
* Mypads plugin website: https://git.framasoft.org/framasoft/ep_mypads
|
||||
* YunoHost website: https://yunohost.org/
|
||||
|
||||
---
|
||||
## Usage
|
||||
Le support ldap étant absent sur le plugin mypads, aucun utilisateur n'est créé par défaut.
|
||||
Il est nécessaire de se connecter à l'interface d'administration pour créer les premiers utilisateurs.
|
||||
Le login et le mot de passe administrateur sont ceux choisis en moment de l'installation.
|
||||
|
||||
**Voir l'état du package:**
|
||||
*[Dernier rapport hebdomadaire](https://forum.yunohost.org/t/rapport-hebdomadaire-dintegration-continue/2297)*
|
||||
*[Dernier test d'intégration continue](https://ci-apps.yunohost.org/jenkins/job/etherpad_mypads%20%28Community%29/lastBuild/consoleFull)*
|
||||
Developers infos
|
||||
----------------
|
||||
|
||||
Please do your pull request to the [testing branch](https://github.com/YunoHost-Apps/etherpad_mypads_ynh/tree/testing).
|
||||
|
||||
To try the testing branch, please proceed like that.
|
||||
```
|
||||
sudo yunohost app install https://github.com/YunoHost-Apps/etherpad_mypads_ynh/tree/testing --verbose
|
||||
or
|
||||
sudo yunohost app upgrade etherpad_mypads -u https://github.com/YunoHost-Apps/etherpad_mypads_ynh/tree/testing --verbose
|
||||
```
|
||||
|
|
117
YEP.md
Normal file
117
YEP.md
Normal file
|
@ -0,0 +1,117 @@
|
|||
#### [Level 0](https://github.com/YunoHost/doc/blob/master/packaging_apps_levels_fr.md#niveau-0)
|
||||
[YEP 1.1 - Nommer son app et son dépot](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-11)
|
||||
`Validated`
|
||||
[YEP 1.2 - Inscrire l'app sur un "répertoire" connu](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-12)
|
||||
`Validated`
|
||||
|
||||
#### [Level 1](https://github.com/YunoHost/doc/blob/master/packaging_apps_levels_fr.md#niveau-1)
|
||||
[YEP 2.2 - Utiliser bash pour les scripts principaux](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-22)
|
||||
`Validated`
|
||||
[YEP 2.5 - Copier correctement des fichiers](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-25)
|
||||
`Don't know`
|
||||
[YEP 2.7 - Donner des permissions suffisantes aux instructions bash](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-27)
|
||||
`Validated`
|
||||
[YEP 2.15 - Suivre les instructions d'installation de l'application](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-215)
|
||||
`Validated`
|
||||
|
||||
#### [Level 2](https://github.com/YunoHost/doc/blob/master/packaging_apps_levels_fr.md#niveau-2)
|
||||
[YEP 1.5 - Mettre à jour régulièrement le statut de l'app](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-11)
|
||||
`Validated`
|
||||
[YEP 2.18.2 - Gérer l'installation à la racine d’un nom de domaine](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-2182)
|
||||
`Validated` - *Automatically verified.*
|
||||
[YEP 2.18.3 - Gérer l'installation sur un sous-domaine](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-2183)
|
||||
`Validated` - *Automatically verified.*
|
||||
[YEP 2.18.4 - Gérer l'installation sur un chemin /path](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-2184)
|
||||
`Validated` - *Automatically verified.*
|
||||
[YEP 4.6 - Gère le multi-instance](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-11)
|
||||
`Not yet validated` - *Automatically verified.*
|
||||
|
||||
#### [Level 3](https://github.com/YunoHost/doc/blob/master/packaging_apps_levels_fr.md#niveau-3)
|
||||
[YEP 2.3 - Sauvegarder les réponses lors de l'installation](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-23)
|
||||
`Validated`
|
||||
|
||||
#### [Level 4](https://github.com/YunoHost/doc/blob/master/packaging_apps_levels_fr.md#niveau-4)
|
||||
[YEP 4.1 - Lier au ldap](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-41)
|
||||
`Not yet validated`
|
||||
[YEP 4.2 - Lier l'authentification au sso](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-42)
|
||||
`Not yet validated`
|
||||
|
||||
#### [Level 5](https://github.com/YunoHost/doc/blob/master/packaging_apps_levels_fr.md#niveau-5)
|
||||
[YEP 1.3 - Indiquer la licence associée au paquet](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-13)
|
||||
`Validated`
|
||||
[YEP 2.1 - Respecter le format du manifeste](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-21)
|
||||
`Validated` - *Automatically verified.*
|
||||
[YEP 2.12 - Utiliser les commandes pratiques (helpers)](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-212)
|
||||
`Validated`
|
||||
[YEP 2.18.1 - Lancer le script d'installation d'une webapp correctement](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-2181)
|
||||
`Not applicable`
|
||||
|
||||
#### [Level 6](https://github.com/YunoHost/doc/blob/master/packaging_apps_levels_fr.md#niveau-6)
|
||||
[YEP 1.4 - Informer sur l'intention de maintenir un paquet](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-14)
|
||||
`Validated`
|
||||
[YEP 1.6 - Se tenir informé sur l'évolution du packaging d'apps](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-16)
|
||||
`Validated`
|
||||
[YEP 1.7 - Ajouter l'app à l'organisation YunoHost-Apps](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-17)
|
||||
`Validated` - *Automatically verified.*
|
||||
[YEP 1.8 - Publier des demandes de test](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-18)
|
||||
`Validated`
|
||||
[YEP 1.9 - Documenter l'app](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-19)
|
||||
`Validated`
|
||||
[YEP 1.10 - Garder un historique de version propre](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-110)
|
||||
`Don't know`
|
||||
[YEP 2.9 - Enlever toutes traces de l'app lors de la suppression](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-29)
|
||||
`Validated`
|
||||
[YEP 3.3 - Faciliter le contrôle de l'intégrité des sources](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-33)
|
||||
`Validated`
|
||||
[YEP 3.5 - Suivre les recommendations de la documentation de l'app](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-35)
|
||||
`Validated`
|
||||
[YEP 3.6 - Mettre à jour les versions contenant des CVE](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-36)
|
||||
`Validated`
|
||||
[YEP 4.3 - Fournir un script de sauvegarde YunoHost fonctionnel](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-43)
|
||||
`Validated` - *Automatically verified.*
|
||||
[YEP 4.4 - Fournir un script de restauration YunoHost fonctionnel](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-44)
|
||||
`Validated` - *Automatically verified.*
|
||||
|
||||
#### [Level 7](https://github.com/YunoHost/doc/blob/master/packaging_apps_levels_fr.md#niveau-7)
|
||||
[YEP 2.6 - Annuler l'action si les valeurs d'entrées sont incorrectes](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-26)
|
||||
`Validated`
|
||||
[YEP 3.2 - Ouvrir un port correctement](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-32)
|
||||
`Validated`
|
||||
|
||||
#### [Level 8](https://github.com/YunoHost/doc/blob/master/packaging_apps_levels_fr.md#niveau-8)
|
||||
[YEP 2.4 - Détecter et gérer les erreurs](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-24)
|
||||
`Validated`
|
||||
[YEP 2.8 - Modifier correctement une configuration système](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-28)
|
||||
`Validated`
|
||||
[YEP 2.16 - Vérifier la disponibilité des dépendances sur ARM, x86 et x64](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-216)
|
||||
`Not yet validated` - *Automatically verified.*
|
||||
[YEP 2.18.5 - Gérer la tuile YunoHost pour faciliter la navigation entre les applications](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-2185)
|
||||
`Partially validated`
|
||||
[YEP 3.4 - Isoler l'app](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-34)
|
||||
`Partially validated`
|
||||
[YEP 4.5 - Utiliser les hooks](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-45)
|
||||
`Not applicable`
|
||||
|
||||
#### [Level 9](https://github.com/YunoHost/doc/blob/master/packaging_apps_levels_fr.md#niveau-9)
|
||||
[YEP 2.10 - Configurer les logs de l'application](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-210)
|
||||
`Validated`
|
||||
[YEP 2.11 - Utiliser une variable plutôt que l'app id directement](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-211)
|
||||
`Validated`
|
||||
[YEP 2.13 - Traduire le paquet en anglais](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-213)
|
||||
`Partially validated`
|
||||
[YEP 2.14 - Remplir correctement un fichier de conf](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-214)
|
||||
`Not yet validated`
|
||||
[YEP 2.17 - Prendre en compte la version d'origine lors des mises à jour](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-217)
|
||||
`Validated`
|
||||
[YEP 4.2.1 - Déconnexion](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-421)
|
||||
`Not yet validated`
|
||||
|
||||
#### Other YEP
|
||||
[YEP 3.1 - Ne pas demander ou stocker de mot de passe LDAP](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-31)
|
||||
`Validated`
|
||||
[YEP 4.7 - Ajouter un module à la CLI](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-47)
|
||||
`Not applicable`
|
||||
[YEP 4.8 - Ajouter un module à l'admin web](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-48)
|
||||
`Not applicable`
|
||||
|
||||
State of each YEP can be one of these: `Validated`, `Partially validated`, `Not yet validated`, `Not applicable`, `Don't know`.
|
|
@ -21,7 +21,7 @@
|
|||
multi_instance=0
|
||||
incorrect_path=1
|
||||
port_already_use=1 (9001)
|
||||
change_url=0
|
||||
change_url=1
|
||||
;; Test avec mypads
|
||||
auto_remove=1
|
||||
; Manifest
|
||||
|
@ -36,6 +36,7 @@
|
|||
; Checks
|
||||
setup_root=1
|
||||
upgrade=1
|
||||
upgrade=1 from_commit=b86b9d09ed97bf04b7e1afad72376d8d695b418b
|
||||
backup_restore=1
|
||||
;; Test abiword
|
||||
auto_remove=1
|
||||
|
@ -70,7 +71,7 @@
|
|||
# Level 4: Pas de support ldap. https://framagit.org/framasoft/ep_mypads/issues/31#note_30898
|
||||
Level 4=na
|
||||
# Level 5: https://github.com/YunoHost-Apps/etherpad_mypads_ynh/issues/11
|
||||
Level 5=1
|
||||
Level 5=auto
|
||||
Level 6=auto
|
||||
Level 7=auto
|
||||
Level 8=0
|
||||
|
@ -79,3 +80,7 @@
|
|||
;;; Options
|
||||
Email=
|
||||
Notification=down
|
||||
;;; Upgrade options
|
||||
; commit=b86b9d09ed97bf04b7e1afad72376d8d695b418b
|
||||
name=20 Jan 2017 b86b9d09ed97bf04b7e1afad72376d8d695b418b
|
||||
manifest_arg=domain=DOMAIN&admin=USER&password=password&language=en&is_public=Yes&abiword=0&
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
SOURCE_URL=https://github.com/ether/etherpad-lite/archive/1.6.1.tar.gz
|
||||
SOURCE_SUM=2de5cf27933cf687dcca9ea2350e38d4
|
||||
SOURCE_URL=https://github.com/ether/etherpad-lite/archive/1.6.2.tar.gz
|
||||
SOURCE_SUM=f810460e6714d85f8a4e7dfbd3d3790b
|
||||
SOURCE_SUM_PRG=md5sum
|
||||
ARCH_FORMAT=tar.gz
|
||||
SOURCE_IN_SUBDIR=true
|
||||
|
|
|
@ -13,5 +13,5 @@ location __PATH__/ {
|
|||
}
|
||||
|
||||
location ~* __PATH__/p/[^/]*(_|%|\*)[^/]*/export/etherpad {
|
||||
return 404;
|
||||
return 404;
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
"en": "Framapad clone, a online editor providing collaborative editing in real-time.",
|
||||
"fr": "Clone de Framapad, un éditeur en ligne fournissant l'édition collaborative en temps réel."
|
||||
},
|
||||
"version": "1.6.1",
|
||||
"version": "1.6.2",
|
||||
"url": "https://framapad.org",
|
||||
"license": "Apache-2.0",
|
||||
"maintainer": {
|
||||
|
|
|
@ -78,6 +78,19 @@ node_version_path="/opt/node_n/n/versions/node"
|
|||
# N_PREFIX est le dossier de n, il doit être chargé dans les variables d'environnement pour n.
|
||||
export N_PREFIX="$n_install_dir"
|
||||
|
||||
ynh_install_n () {
|
||||
echo "Installation of N - Node.js version management" >&2
|
||||
# Build an app.src for n
|
||||
mkdir -p "../conf"
|
||||
echo "SOURCE_URL=https://github.com/tj/n/archive/v2.1.7.tar.gz
|
||||
SOURCE_SUM=2ba3c9d4dd3c7e38885b37e02337906a1ee91febe6d5c9159d89a9050f2eea8f" > "../conf/n.src"
|
||||
# Download and extract n
|
||||
ynh_setup_source "$n_install_dir/git" n
|
||||
# Install n
|
||||
(cd "$n_install_dir/git"
|
||||
PREFIX=$N_PREFIX make install 2>&1)
|
||||
}
|
||||
|
||||
ynh_use_nodejs () {
|
||||
nodejs_version=$(ynh_app_setting_get $app nodejs_version)
|
||||
|
||||
|
@ -113,9 +126,10 @@ ynh_install_nodejs () {
|
|||
test -x /usr/bin/npm && mv /usr/bin/npm /usr/bin/npm_n
|
||||
|
||||
# If n is not previously setup, install it
|
||||
n --version > /dev/null 2>&1 || \
|
||||
( echo "Installation of N - Node.js version management" >&2; \
|
||||
curl -sL $n_install_script | N_PREFIX=$N_PREFIX bash -s -- -y - 2>&1 )
|
||||
if ! test n --version > /dev/null 2>&1
|
||||
then
|
||||
ynh_install_n
|
||||
fi
|
||||
|
||||
# Modify the default N_PREFIX in n script
|
||||
ynh_replace_string "^N_PREFIX=\${N_PREFIX-.*}$" "N_PREFIX=\${N_PREFIX-$N_PREFIX}" "$n_install_dir/bin/n"
|
||||
|
@ -219,3 +233,19 @@ EOF
|
|||
|
||||
chmod +x "/etc/cron.daily/node_update"
|
||||
}
|
||||
|
||||
|
||||
#=================================================
|
||||
#============= FUTURE YUNOHOST HELPER ============
|
||||
#=================================================
|
||||
|
||||
# Delete a file checksum from the app settings
|
||||
#
|
||||
# $app should be defined when calling this helper
|
||||
#
|
||||
# usage: ynh_remove_file_checksum file
|
||||
# | arg: file - The file for which the checksum will be deleted
|
||||
ynh_delete_file_checksum () {
|
||||
local checksum_setting_name=checksum_${1//[\/ ]/_} # Replace all '/' and ' ' by '_'
|
||||
ynh_app_setting_delete $app $checksum_setting_name
|
||||
}
|
||||
|
|
167
scripts/change_url
Normal file
167
scripts/change_url
Normal file
|
@ -0,0 +1,167 @@
|
|||
#!/bin/bash
|
||||
|
||||
#=================================================
|
||||
# GENERIC STARTING
|
||||
#=================================================
|
||||
# IMPORT GENERIC HELPERS
|
||||
#=================================================
|
||||
|
||||
source _common.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
# RETRIEVE ARGUMENTS
|
||||
#=================================================
|
||||
|
||||
old_domain=$YNH_APP_OLD_DOMAIN
|
||||
old_path=$YNH_APP_OLD_PATH
|
||||
|
||||
new_domain=$YNH_APP_NEW_DOMAIN
|
||||
new_path=$YNH_APP_NEW_PATH
|
||||
|
||||
app=$YNH_APP_INSTANCE_NAME
|
||||
|
||||
mypads=$(ynh_app_setting_get $app mypads)
|
||||
|
||||
#=================================================
|
||||
# CHECK THE SYNTAX OF THE PATHS
|
||||
#=================================================
|
||||
|
||||
test -n "$old_path" || old_path="/"
|
||||
test -n "$new_path" || new_path="/"
|
||||
new_path=$(ynh_normalize_url_path $new_path)
|
||||
old_path=$(ynh_normalize_url_path $old_path)
|
||||
|
||||
#=================================================
|
||||
# CHECK IF THE PATH CAN BE CHANGED
|
||||
#=================================================
|
||||
|
||||
if [ "$new_path" != "/" ] && [ $mypads -eq 1 ]
|
||||
then
|
||||
ynh_die "Mypads needs to be installed on the root of a domain or a subdomain."
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# CHECK WHICH PARTS SHOULD BE CHANGED
|
||||
#=================================================
|
||||
|
||||
change_domain=0
|
||||
if [ "$old_domain" != "$new_domain" ]
|
||||
then
|
||||
change_domain=1
|
||||
fi
|
||||
|
||||
change_path=0
|
||||
if [ "$old_path" != "$new_path" ]
|
||||
then
|
||||
change_path=1
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
|
||||
#=================================================
|
||||
|
||||
if [ $change_domain -eq 0 ]
|
||||
then
|
||||
# Backup the current version of the app
|
||||
ynh_backup_before_upgrade
|
||||
ynh_clean_setup () {
|
||||
# Nettoyage des résidus d'installation non pris en charge par le script remove.
|
||||
if test -n "$PID_TAIL"
|
||||
then
|
||||
SUPPRESS_WARNING kill -s 15 $PID_TAIL # Arrête l'exécution de tail.
|
||||
ynh_secure_remove "$tempfile"
|
||||
fi
|
||||
|
||||
# restore it if the upgrade fails
|
||||
ynh_restore_upgradebackup
|
||||
}
|
||||
# Exit if an error occurs during the execution of the script
|
||||
ynh_abort_if_errors
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# STANDARD MODIFICATIONS
|
||||
#=================================================
|
||||
# MODIFY URL IN NGINX CONF
|
||||
#=================================================
|
||||
|
||||
nginx_conf_path=/etc/nginx/conf.d/$old_domain.d/$app.conf
|
||||
|
||||
# Change the path in the nginx config file
|
||||
if [ $change_path -eq 1 ]
|
||||
then
|
||||
# Make a backup of the original nginx config file if modified
|
||||
ynh_backup_if_checksum_is_different "$nginx_conf_path"
|
||||
|
||||
# Move from sub path to root
|
||||
if [ "$new_path" == "/" ]
|
||||
then
|
||||
ynh_replace_string "^location $old_path/" "location $new_path" "$nginx_conf_path"
|
||||
ynh_replace_string "^.*rewrite.*\^/" "#sub_path_only&" "$nginx_conf_path"
|
||||
ynh_replace_string "^location ~\* $old_path/" "location ~* $new_path" "$nginx_conf_path"
|
||||
|
||||
# Change the path in the two rewrite instructions
|
||||
ynh_replace_string "\(rewrite *\^\)$old_path\$ $old_path/*" "\1$new_path$ $new_path" "$nginx_conf_path"
|
||||
ynh_replace_string "\(rewrite *\^\)$old_path/*admin\$ $old_path/*" "\1${new_path}admin\$ $new_path" "$nginx_conf_path"
|
||||
|
||||
# Move to a sub path
|
||||
else
|
||||
ynh_replace_string "^location $old_path.*" "location $new_path/ {" "$nginx_conf_path"
|
||||
ynh_replace_string "^#sub_path_only" "" "$nginx_conf_path"
|
||||
ynh_replace_string "^location ~\* $old_path/*" "location ~* $new_path/" "$nginx_conf_path"
|
||||
|
||||
# Change the path in the two rewrite instructions
|
||||
ynh_replace_string "\(rewrite *\^\)$old_path\$ $old_path/*" "\1$new_path$ $new_path/" "$nginx_conf_path"
|
||||
ynh_replace_string "\(rewrite *\^\)$old_path/*admin\$ $old_path/*" "\1$new_path/admin\$ $new_path/" "$nginx_conf_path"
|
||||
fi
|
||||
|
||||
# Calculate and store the nginx config file checksum
|
||||
ynh_store_file_checksum "$nginx_conf_path"
|
||||
fi
|
||||
|
||||
# Change the domain for nginx
|
||||
if [ $change_domain -eq 1 ]
|
||||
then
|
||||
# Delete file checksum for the old conf file location
|
||||
ynh_delete_file_checksum "$nginx_conf_path"
|
||||
mv $nginx_conf_path /etc/nginx/conf.d/$new_domain.d/$app.conf
|
||||
|
||||
nginx_conf_path=/etc/nginx/conf.d/$new_domain.d/$app.conf
|
||||
# Calculate and store the nginx config file checksum
|
||||
ynh_store_file_checksum "$nginx_conf_path"
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# RELOAD NGINX
|
||||
#=================================================
|
||||
|
||||
systemctl reload nginx
|
||||
|
||||
#=================================================
|
||||
# START ETHERPAD IN BACKGROUND
|
||||
#=================================================
|
||||
|
||||
# Démarre etherpad
|
||||
WARNING echo "Redémarrage d'etherpad"
|
||||
tempfile="$(mktemp)"
|
||||
tail -f -n1 /var/log/$app/etherpad.log > "$tempfile" & # Suit le démarrage dans le log
|
||||
PID_TAIL=$! # Récupère le PID de la commande tail, qui est passée en arrière plan.
|
||||
systemctl start $app # Redémarre etherpad. Le démarrage est fait le plus tôt possible, car il est très long...
|
||||
|
||||
#=================================================
|
||||
# CHECK ETHERPAD STARTING
|
||||
#=================================================
|
||||
|
||||
for i in `seq 1 120`
|
||||
do # La boucle attend le démarrage d'etherpad. Ou 2 minutes. Cette boucle évite simplement un 502 au début, car le démarrage est long...
|
||||
if grep -q "You can access your Etherpad instance at" "$tempfile"; then
|
||||
WARNING echo "Le service $app a démarré correctement."
|
||||
break # Si le log annonce le démarrage d'etherpad, sort de la boucle.
|
||||
fi
|
||||
WARNING echo -n "."
|
||||
sleep 1
|
||||
done
|
||||
echo ""
|
||||
QUIET kill -s 15 $PID_TAIL # Arrête l'exécution de tail.
|
||||
ynh_secure_remove "$tempfile"
|
|
@ -58,6 +58,9 @@ fi
|
|||
final_path=/var/www/$app
|
||||
test ! -e "$final_path" || ynh_die "This path already contains a folder"
|
||||
|
||||
# Normalize the url path syntax
|
||||
path_url=$(ynh_normalize_url_path $path_url)
|
||||
|
||||
# Check web path availability
|
||||
ynh_webpath_available $domain $path_url
|
||||
# Register (book) web path
|
||||
|
|
|
@ -80,6 +80,13 @@ fi
|
|||
# Backup the current version of the app
|
||||
ynh_backup_before_upgrade
|
||||
ynh_clean_setup () {
|
||||
# Nettoyage des résidus d'installation non pris en charge par le script remove.
|
||||
if test -n "$PID_TAIL"
|
||||
then
|
||||
SUPPRESS_WARNING kill -s 15 $PID_TAIL # Arrête l'exécution de tail.
|
||||
ynh_secure_remove "$tempfile"
|
||||
fi
|
||||
|
||||
# restore it if the upgrade fails
|
||||
ynh_restore_upgradebackup
|
||||
}
|
||||
|
@ -240,8 +247,9 @@ systemctl reload nginx
|
|||
# CHECK ETHERPAD STARTING
|
||||
#=================================================
|
||||
|
||||
for i in `seq 1 60`
|
||||
do # La boucle attend le démarrage d'etherpad. Ou 1 minute. Cette boucle évite simplement un 502 au début, car le démarrage est long...
|
||||
|
||||
for i in `seq 1 120`
|
||||
do # La boucle attend le démarrage d'etherpad. Ou 2 minutes. Cette boucle évite simplement un 502 au début, car le démarrage est long...
|
||||
if grep -q "You can access your Etherpad instance at" "$tempfile"; then
|
||||
WARNING echo "Le service $app a démarré correctement."
|
||||
break # Si le log annonce le démarrage d'etherpad, sort de la boucle.
|
||||
|
|
Loading…
Add table
Reference in a new issue