Fix protected file filter variable

The filter was only being set during schedule creation.
This meant that no new files created since scheduling the task
would be included. To avoid this, the rclone command is now
built when the task is run instead via a new script.
This commit is contained in:
ViViDboarder 2023-11-13 13:52:24 -08:00
parent e5b0ae6160
commit de4b02dae7
2 changed files with 19 additions and 15 deletions

View File

@ -8,19 +8,5 @@ bashio::config.require.password 'credentials.password'
bashio::config.suggest.true 'tls.ssl' bashio::config.suggest.true 'tls.ssl'
bashio::config.require.ssl 'tls' 'tls.certfile' 'tls.keyfile' bashio::config.require.ssl 'tls' 'tls.certfile' 'tls.keyfile'
SYNC_COMMAND=$(bashio::config 'sync_command') echo "$(bashio::config 'cron') /run_rclone.sh" >> /etc/crontabs/root
DESTINATION=$(bashio::config 'destination')
USERNAME=$(bashio::config 'credentials.username')
PASSWORD=$(bashio::config 'credentials.password')
FILTER='{"IncludeRule": ["*.tar"]}'
if bashio::config.true 'protected_only'; then
FILTER="{\"IncludeRule\": $(find /backup -name "*.tar" -exec tar -xOf "{}" ./backup.json \;| jq -sc 'map(select(.protected) | "/backup/\(.slug).tar")')}"
FILTER=
fi
command="rclone rc --user \"$USERNAME\" --pass \"$PASSWORD\" sync/$SYNC_COMMAND srcFs=/backup dstFs=$DESTINATION _async=true _filter='$FILTER'"
echo "$(bashio::config 'cron') $command" >> /etc/crontabs/root
crontab -l crontab -l

18
rclone/rootfs/run_rclone.sh Executable file
View File

@ -0,0 +1,18 @@
#! /usr/bin/with-contenv bashio
bashio::log.info "Running rclone..."
SYNC_COMMAND=$(bashio::config 'sync_command')
DESTINATION=$(bashio::config 'destination')
USERNAME=$(bashio::config 'credentials.username')
PASSWORD=$(bashio::config 'credentials.password')
set +x
FILTER='{"IncludeRule": ["*.tar"]}'
if bashio::config.true 'protected_only'; then
FILTER="{\"IncludeRule\": $(find /backup -name "*.tar" -exec tar -xOf "{}" ./backup.json \;| jq -sc 'map(select(.protected) | "/backup/\(.slug).tar")')}"
fi
rclone rc --user "$USERNAME" --pass "$PASSWORD" "sync/$SYNC_COMMAND" srcFs=/backup "dstFs=$DESTINATION" _async=true _filter="$FILTER"