diff --git a/config_panel.toml b/config_panel.toml index 7cdcfdf..b5b4d41 100644 --- a/config_panel.toml +++ b/config_panel.toml @@ -16,20 +16,20 @@ services = [] [main.general] [main.general.info] ask = """\ - Backup state : {state} - Last run: {last_run} + Backup state : {{state}} + Last run: {{last_run}} """ type = "alert" style = "info" - [main.settings.repository] + [main.general.repository] ask.en = "Repository" type = "string" help = "Specify a local repository like /mount/my_external_harddrive/backups or a remote repository using this format: ssh://USER@DOMAIN.TLD:PORT/~/backup . If you plan to use borgserver_ynh app : '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. With borgserver_ynh apps you can't specify another repo path than ~/backup." - [main.settings.ssh_public_key] + [main.general.ssh_public_key] ask.en = "Public key: {ssh_public_key}" - type = "display_text" + type = "markdown" bind = "/root/.ssh/id___APP___ed25519.pub" [main.general.on_calendar] @@ -58,6 +58,10 @@ services = [] ask.en = "Data" type = "boolean" + [main.content.data_multimedia] + ask.en = "Data multimedia" + type = "boolean" + [main.content.apps] ask.en = "Apps" type = "tags" @@ -69,8 +73,5 @@ services = [] [advanced.list] name = "Last backups list" [advanced.list.last_backups] - ask.en = """\ - {last_backups}\ - """ + ask.en = "" type = "markdown" - diff --git a/manifest.json b/manifest.json index a6e2b81..d0883ed 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Backup your server on a host server using Borg.", "fr": "Sauvegardez votre serveur sur un serveur distant avec Borg." }, - "version": "1.1.16~ynh25", + "version": "1.1.16~ynh26", "url": "https://borgbackup.readthedocs.io", "license": "BSD-3-Clause", "maintainer": { diff --git a/scripts/config b/scripts/config index 5e93896..4f0b799 100644 --- a/scripts/config +++ b/scripts/config @@ -9,11 +9,16 @@ ynh_abort_if_errors #================================================= get__info() { - if [ "$state" == "failed" ]; then cat << EOF +ask: + en: "**Backup state**: ${old[state]} + + **Last run**: ${old[last_run]}" +EOF + if [ "${old[state]}" == "failed" ]; then style: "danger" EOF - elif [ "$state" == "successful" ]; then + elif [ "${old[state]}" == "successful" ]; then cat << EOF style: "success" EOF @@ -24,10 +29,24 @@ EOF fi } +get__ssh_public_key() { + cat << EOF +ask: + en: "**Public key**: \`$(cat /root/.ssh/id_${app}_ed25519.pub || echo '')\`" +EOF +} + +get__data_multimedia() { + if [ -e /home/yunohost.multimedia/.nobackup ]; then + echo "value: false" + else + echo "value: true" + fi +} get__last_backups() { cat << EOF -value: - $(borg list --short --last 50 $repository) +ask: |- +$(BORG_PASSPHRASE="$(yunohost app setting $app passphrase)" BORG_RSH="ssh -i /root/.ssh/id_${app}_ed25519 -oStrictHostKeyChecking=yes " borg list --short --last 50 ${old[repository]} | sed 's/^/ /g' 2> /dev/null) EOF } @@ -36,11 +55,24 @@ EOF #================================================= validate__on_calendar() { - (! systemd-analyze calendar $on_calendar > /dev/null) && + (systemd-analyze calendar $on_calendar > /dev/null) || echo 'Please follow systemd OnCalendar format: https://man.archlinux.org/man/systemd.time.7#CALENDAR_EVENTS' } +#================================================= +# SPECIFIC SETTERS FOR TOML SHORT KEYS +#================================================= + +set__data_multimedia() { + if [ "$data_multimedia" == "false" ]; then + mkdir -p /home/yunohost.multimedia/ + touch /home/yunohost.multimedia/.nobackup + else + ynh_secure_remove /home/yunohost.multimedia/.nobackup + fi +} #================================================= # GENERIC FINALIZATION #================================================= ynh_app_config_run $1 +