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

Corrections backup restore

This commit is contained in:
Maniack Crudelis 2016-08-05 16:59:55 +02:00
parent a4c6ff91be
commit b2d595e203
6 changed files with 89 additions and 52 deletions

25
check_process Normal file
View file

@ -0,0 +1,25 @@
;; Test complet
auto_remove=1
; Manifest
domain="domain.tld" (DOMAIN)
path="/path" (PATH)
admin="john" (USER)
is_public="Yes" (PUBLIC|public=Yes|private=No)
always_encrypt="Yes"
; Checks
pkg_linter=1
setup_sub_dir=1
setup_root=1
setup_nourl=0
setup_private=1
setup_public=1
upgrade=1
backup_restore=1
multi_instance=0
wrong_user=1
wrong_path=1
incorrect_path=1
corrupt_source=0
fail_download_source=0
port_already_use=1 (8095)
final_path_already_use=0

View file

@ -1,4 +1,4 @@
location __PATH__ { location __PATH__/ {
if ($scheme = http) { if ($scheme = http) {
rewrite ^ https://$server_name$request_uri? permanent; rewrite ^ https://$server_name$request_uri? permanent;
} }

View file

@ -1,46 +1,49 @@
{ {
"name": "Lutim", "name": "Lutim",
"id": "lutim", "id": "lutim",
"packaging_format": 1, "packaging_format": 1,
"requirements": { "requirements": {
"yunohost": ">= 2.4" "yunohost": ">= 2.4"
}, },
"description": { "description": {
"en": "Self hosting images and sharing anonymous application", "en": "Self hosting images and sharing anonymous application",
"fr": "Application d'hébergement et de partage d'images anonyme" "fr": "Application d'hébergement et de partage d'images anonyme"
}, },
"version": "0.6 dev", "version": "0.6 dev",
"url": "https://lut.im", "url": "https://lut.im",
"licence": "free", "license": "free",
"maintainer": { "maintainer": {
"name": "Maniack Crudelis et matlink", "name": "Maniack Crudelis et matlink",
"email": "maniackc_dev@crudelis.fr matlink@matlink.fr" "email": "maniackc_dev@crudelis.fr matlink@matlink.fr"
}, },
"multi_instance": "false", "multi_instance": false,
"services": [ "services": [
"nginx" "nginx"
], ],
"arguments": { "arguments": {
"install" : [ "install" : [
{ {
"name": "domain", "name": "domain",
"ask": { "type": "domain",
"en": "Choose a domain for Lutim", "ask": {
"fr": "Choisissez un domaine pour Lutim" "en": "Choose a domain for Lutim",
}, "fr": "Choisissez un domaine pour Lutim"
"example": "domain.org" },
}, "example": "domain.org"
{ },
"name": "path", {
"ask": { "name": "path",
"en": "Choose a path for Lutim", "type": "path",
"fr": "Choisissez un chemin pour Lutim" "ask": {
}, "en": "Choose a path for Lutim",
"example": "/lutim", "fr": "Choisissez un chemin pour Lutim"
"default": "/lutim" },
}, "example": "/lutim",
"default": "/lutim"
},
{ {
"name": "admin", "name": "admin",
"type": "user",
"ask": { "ask": {
"en": "Choose the Lutim administrator (must be an existing YunoHost user)", "en": "Choose the Lutim administrator (must be an existing YunoHost user)",
"fr": "Choisissez un administrateur Lutim (doit être un utilisateur YunoHost)" "fr": "Choisissez un administrateur Lutim (doit être un utilisateur YunoHost)"
@ -65,6 +68,6 @@
"choices": ["Yes", "No"], "choices": ["Yes", "No"],
"default": "Yes" "default": "Yes"
} }
] ]
} }
} }

View file

@ -1,5 +1,7 @@
#!/bin/bash #!/bin/bash
ynh_version="2.4"
YNH_VERSION () { # Renvoi le numéro de version de la moulinette Yunohost YNH_VERSION () { # Renvoi le numéro de version de la moulinette Yunohost
ynh_version=$(sudo yunohost -v | grep "moulinette:" | cut -d' ' -f2 | cut -d'.' -f1,2) ynh_version=$(sudo yunohost -v | grep "moulinette:" | cut -d' ' -f2 | cut -d'.' -f1,2)
} }
@ -7,20 +9,20 @@ YNH_VERSION () { # Renvoi le numéro de version de la moulinette Yunohost
CHECK_VAR () { # Vérifie que la variable n'est pas vide. CHECK_VAR () { # Vérifie que la variable n'est pas vide.
# $1 = Variable à vérifier # $1 = Variable à vérifier
# $2 = Texte à afficher en cas d'erreur # $2 = Texte à afficher en cas d'erreur
test -n "$1" || (echo "$2" && false) test -n "$1" || (echo "$2" >&2 && false)
} }
EXIT_PROPERLY () { # Provoque l'arrêt du script en cas d'erreur. Et nettoye les résidus. EXIT_PROPERLY () { # Provoque l'arrêt du script en cas d'erreur. Et nettoye les résidus.
trap '' ERR trap '' ERR
echo -e "\e[91m \e[1m" # Shell in light red bold echo -e "\e[91m \e[1m" # Shell in light red bold
echo -e "!!\n $app install's script has encountered an error. Installation was cancelled.\n!!" echo -e "!!\n $app install's script has encountered an error. Installation was cancelled.\n!!" >&2
CLEAN_SETUP # Appel la fonction de nettoyage spécifique du script install. CLEAN_SETUP # Appel la fonction de nettoyage spécifique du script install.
# Compense le bug de ssowat qui ne supprime pas l'entrée de l'app en cas d'erreur d'installation. # Compense le bug de ssowat qui ne supprime pas l'entrée de l'app en cas d'erreur d'installation.
sudo sed -i "\@\"$domain$path/\":@d" /etc/ssowat/conf.json sudo sed -i "\@\"$domain$path/\":@d" /etc/ssowat/conf.json
if [ $ynh_version = "2.2" ]; then if [ "$ynh_version" = "2.2" ]; then
/bin/bash $script_dir/remove # Appel le script remove. En 2.2, ce comportement n'est pas automatique. /bin/bash $script_dir/remove # Appel le script remove. En 2.2, ce comportement n'est pas automatique.
fi fi
@ -40,7 +42,7 @@ TRAP_OFF () { # Ignoring signal capture until TRAP_ON
CHECK_USER () { # Vérifie la validité de l'user admin CHECK_USER () { # Vérifie la validité de l'user admin
# $1 = Variable de l'user admin. # $1 = Variable de l'user admin.
sudo yunohost user list --json | grep -q "\"username\": \"$1\"" || (echo "Wrong admin" && false) sudo yunohost user list --json | grep -q "\"username\": \"$1\"" || (echo "Wrong admin" >&2 && false)
} }
CHECK_PATH () { # Vérifie la présence du / en début de path. Et son absence à la fin. CHECK_PATH () { # Vérifie la présence du / en début de path. Et son absence à la fin.
@ -60,7 +62,7 @@ CHECK_FINALPATH () { # Vérifie que le dossier de destination n'est pas déjà u
final_path=/var/www/$app final_path=/var/www/$app
if [ -e "$final_path" ] if [ -e "$final_path" ]
then then
echo "This path already contains a folder" echo "This path already contains a folder" >&2
false false
fi fi
} }
@ -81,7 +83,7 @@ SETUP_SOURCE () { # Télécharge la source, décompresse et copie dans $final_pa
# $1 = Nom de l'archive téléchargée. # $1 = Nom de l'archive téléchargée.
wget -nv --show-progress -i ../sources/source_url -O $1 wget -nv --show-progress -i ../sources/source_url -O $1
# Vérifie la somme de contrôle de la source téléchargée. # Vérifie la somme de contrôle de la source téléchargée.
md5sum -c ../sources/source_md5 --status || (echo "Corrupt source" && false) md5sum -c ../sources/source_md5 --status || (echo "Corrupt source" >&2 && false)
# Décompresse la source # Décompresse la source
if [ "$(echo ${1##*.})" == "gz" ]; then if [ "$(echo ${1##*.})" == "gz" ]; then
tar -x -f $1 tar -x -f $1

View file

@ -1,9 +1,7 @@
#!/bin/bash #!/bin/bash
source .fonctions # Charge les fonctions génériques habituellement utilisées dans le script
# Récupère les infos de l'application. # Récupère les infos de l'application.
YNH_VERSION # Récupère le numéro de version de Yunohost. ynh_version=$(sudo yunohost -v | grep "moulinette:" | cut -d' ' -f2 | cut -d'.' -f1,2) # Récupère le numéro de version de Yunohost.
if [ $ynh_version = "2.4" ]; then if [ $ynh_version = "2.4" ]; then
app=$YNH_APP_INSTANCE_NAME app=$YNH_APP_INSTANCE_NAME
else else

View file

@ -1,9 +1,7 @@
#!/bin/bash #!/bin/bash
source .fonctions # Charge les fonctions génériques habituellement utilisées dans le script
# Récupère les infos de l'application. # Récupère les infos de l'application.
YNH_VERSION # Récupère le numéro de version de Yunohost. ynh_version=$(sudo yunohost -v | grep "moulinette:" | cut -d' ' -f2 | cut -d'.' -f1,2) # Récupère le numéro de version de Yunohost.
if [ $ynh_version = "2.4" ]; then if [ $ynh_version = "2.4" ]; then
app=$YNH_APP_INSTANCE_NAME app=$YNH_APP_INSTANCE_NAME
else else
@ -29,17 +27,28 @@ then
# Restauration des fichiers du script init # Restauration des fichiers du script init
sudo cp -a $backup_dir/init.d_lutim /etc/init.d/lutim sudo cp -a $backup_dir/init.d_lutim /etc/init.d/lutim
sudo cp -a $backup_dir/default_lutim /etc/default/lutim sudo cp -a $backup_dir/default_lutim /etc/default/lutim
## Démarrage auto du service
sudo update-rc.d lutim defaults
else else
# Restauration des fichiers du script systemd # Restauration des fichiers du script systemd
sudo cp -a $backup_dir/lutim.service /etc/systemd/system/lutim.service sudo cp -a $backup_dir/lutim.service /etc/systemd/system/lutim.service
## Démarrage auto du service
sudo systemctl enable lutim.service
fi fi
# Restauration du fichier du cron # Restauration du fichier du cron
sudo cp -a $backup_dir/cron_$app /etc/cron.d/$app sudo cp -a $backup_dir/cron_$app /etc/cron.d/$app
# Making log symbolic link to /var/log
sudo mkdir -p /var/log/$app/
sudo touch /var/log/$app/production.log
sudo chown www-data: /var/log/$app/production.log
# Restaure la configuration de logrotate # Restaure la configuration de logrotate
sudo cp -a $backup_dir/logrotate /etc/logrotate.d/$app sudo cp -a $backup_dir/logrotate /etc/logrotate.d/$app
# Restart webserver # Restart webserver
sudo service nginx reload sudo service nginx reload
# Start lutim
sudo service lutim start