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

[fix] Some bugs found on Aleks review

This commit is contained in:
ljf 2021-03-28 16:16:01 +02:00
parent f02754e21e
commit bae5b36e7b
6 changed files with 19 additions and 22 deletions

View file

@ -1,6 +1,6 @@
;; Test complet ;; Test complet
; Manifest ; Manifest
server="ssh://sam@domain.tld:22/~/backup" repository="ssh://sam@domain.tld:22/~/backup"
passphrase="APassphrase" passphrase="APassphrase"
conf=1 conf=1
data=1 data=1

View file

@ -3,20 +3,16 @@
# We don't stop the script on errors cause we want to backup all data we could backuped # We don't stop the script on errors cause we want to backup all data we could backuped
#set -eu #set -eu
app=$1 borg_id=$1
errors="" errors=""
current_date=$(date +"%y%m%d_%H%M") current_date=$(date +"%y%m%d_%H%M")
log_file="/var/log/$app/$current_date.log" log_file="/var/log/${borg_id}/${current_date}.log"
err_file="/var/log/$app/$current_date.err" err_file="/var/log/${borg_id}/${current_date}.err"
mkdir -p "/var/log/$app" mkdir -p "/var/log/${borg_id}"
if [[ -z "$borg_id" ]]
# Adapt this script to different API 2.x vs 3.x then
if yunohost -v | grep "version: 2." > /dev/null; then echo "This script expects a borg app id as first argument" >&2
ignore_apps="--ignore-apps" exit 1
ignore_system="--ignore-system"
else
ignore_apps=""
ignore_system=""
fi fi
filter_hooks() { filter_hooks() {
@ -28,10 +24,10 @@ fail_if_partially_failed() {
} }
# Backup system part conf # Backup system part conf
conf=$(yunohost app setting $app conf) conf=$(yunohost app setting ${borg_id} conf)
if [ $conf -eq 1 ] if [ $conf -eq 1 ]
then then
if ! yunohost backup create $ignore_apps -n auto_conf --method $app_app --system $(filter_hooks conf) 2> $err_file > $log_file ; then if ! yunohost backup create -n auto_conf --method ${borg_id}_app --system $(filter_hooks conf) 2> $err_file > $log_file ; then
errors="$errors\nconf: Error" errors="$errors\nconf: Error"
fi fi
fi fi
@ -40,13 +36,13 @@ fi
data=$(yunohost app setting $app data) data=$(yunohost app setting $app data)
if [ $data -eq 1 ] if [ $data -eq 1 ]
then then
if ! yunohost backup create $ignore_apps -n auto_data --method $app_app --system $(filter_hooks data) 2> $err_file > $log_file ; then if ! yunohost backup create -n auto_data --method ${borg_id}_app --system $(filter_hooks data) 2> $err_file > $log_file ; then
errors="$errors\ndata: Error" errors="$errors\ndata: Error"
fi fi
fi fi
# Backup all apps independently # Backup all apps independently
apps=$(yunohost app setting $app apps) apps=$(yunohost app setting ${borg_id} apps)
for application in $(ls /etc/yunohost/apps/*/scripts/backup | cut -d / -f 5); do for application in $(ls /etc/yunohost/apps/*/scripts/backup | cut -d / -f 5); do
backup_app=false backup_app=false
if [[ "$apps" = "all" ]]; then if [[ "$apps" = "all" ]]; then
@ -60,7 +56,7 @@ for application in $(ls /etc/yunohost/apps/*/scripts/backup | cut -d / -f 5); do
done done
fi fi
if [ "$backup_app" == "true" ];then if [ "$backup_app" == "true" ];then
if ! yunohost backup create $ignore_system -n auto_$application --method $app_app --apps $app 2> $err_file > $log_file ; then if ! yunohost backup create -n auto_$application --method ${borg_id}_app --apps $application 2> $err_file > $log_file ; then
errors="$errors\$application: Error" errors="$errors\$application: Error"
fi fi
fi fi

View file

@ -29,7 +29,7 @@
"fr": "Dans quel repo borg souhaitez-vous sauvegarder vos fichiers ?" "fr": "Dans quel repo borg souhaitez-vous sauvegarder vos fichiers ?"
}, },
"help":{ "help":{
"en": "You can specify a local by giving direct path or a remote repo in this format: ssh://USER@DOMAIN.TLD:PORT/~/backup . For remote user, it is not meant to be an existing user on the guest server. Instead, it will be created *on the host server* during the installation of the Borg Server App." "en": "Specify a remote repository using this format: ssh://USER@DOMAIN.TLD:PORT/~/backup . "USER" is *not* meant to be an existing user on the guest server. Instead, it will be created *on the host server* during the installation of the Borg Server App. It's also possible to use a local repository using a syntax such as /mount/my_external_harddrive/backups"
}, },
"example": "ssh://john@serverb.tld:22/~/backup" "example": "ssh://john@serverb.tld:22/~/backup"
}, },

View file

@ -77,7 +77,7 @@ if [ ! -z "$server" ]; then
# Display key # Display key
#================================================= #=================================================
echo "You should now install the \"Borg Server\" app on $server and fill questions like this: echo "You should now install the \"Borg Server\" app on $server and with the following credentials:
User: ${ssh_user} User: ${ssh_user}
Public key: $(cat ${private_key}.pub)" Public key: $(cat ${private_key}.pub)"
@ -86,7 +86,7 @@ if [ ! -z "$server" ]; then
#================================================= #=================================================
ynh_print_OFF ynh_print_OFF
message="You should now install the \"Borg Server\" app on $server and fill questions like this: message="You should now install the \"Borg Server\" app on $server and with the following credentials:
User: ${ssh_user} User: ${ssh_user}
Public key: $(cat ${private_key}.pub) Public key: $(cat ${private_key}.pub)

View file

@ -43,6 +43,7 @@ ynh_secure_remove "/etc/systemd/system/$app.timer"
ynh_secure_remove "/usr/local/bin/backup-with-$app" ynh_secure_remove "/usr/local/bin/backup-with-$app"
ynh_secure_remove "/etc/yunohost/hooks.d/backup_method/05-${app}_app" ynh_secure_remove "/etc/yunohost/hooks.d/backup_method/05-${app}_app"
# Remove borg if we are removing the last borg app on the system
if [ "$(yunohost app list | grep "id: borg" | wc -l)" == "1" ] ; then if [ "$(yunohost app list | grep "id: borg" | wc -l)" == "1" ] ; then
ynh_secure_remove "/opt/borg-env" ynh_secure_remove "/opt/borg-env"
ynh_secure_remove "/usr/local/bin/borg" ynh_secure_remove "/usr/local/bin/borg"

View file

@ -67,7 +67,7 @@ if grep "borg.timer" /etc/yunohost/services.yml > /dev/null ; then
fi fi
# Replace backports with pip # Replace backports with pip
rm -f /etc/apt/sources.list.d/$app-stretch-backports.list [ ! -e " /etc/apt/sources.list.d/$app-stretch-backports.list" ] || rm -f /etc/apt/sources.list.d/$app-stretch-backports.list
# Reinstall borg if stretch -> buster migration # Reinstall borg if stretch -> buster migration
if is_buster; then if is_buster; then