diff --git a/type/__borg/manifest b/type/__borg/manifest index 82e4d5a..69ecc32 100644 --- a/type/__borg/manifest +++ b/type/__borg/manifest @@ -1,9 +1,9 @@ #!/bin/sh +# Install the borg package os=$(cat "${__global:?}/explorer/os") case "$os" in alpine|ubuntu|debian) - __package borgbackup __package borgbackup ;; *) @@ -12,18 +12,24 @@ case "$os" in ;; esac -repository=$(cat "$__object/parameter/repository") -if [ -f "$__object/parameter/exclude" ]; then +# Get the repository location. +repository=$(cat "${__object:?}/parameter/repository") + +# Use optionally specified excludes, or default ones for GNU/Linux. +if [ -f "${__object:?}/parameter/exclude" ]; then excludes=$(cat "$__object/parameter/exclude") else excludes="/sys /proc /dev /run" fi +# Build command +unknown_repo_warning_fragment="BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK=yes" + for path in $excludes; do exclude_fragment="$exclude_fragment --exclude $path" done -unknown_repo_warning_fragment="BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK=yes" borg_command="sh -c \"$unknown_repo_warning_fragment borg create $exclude_fragment --stats $repository::daily-\\\$(date -I) /\"" +# Setup cronjob. require="__package/borgbackup" __cron daily-backup --user root --command "$borg_command" --hour 2