Files
hassio-addons-avm/rsync/run.sh
2021-06-29 12:37:08 +03:00

46 lines
1.2 KiB
Bash

#!/usr/bin/env bashio
# shellcheck shell=bash
set -e
PRIVATE_KEY_FILE=$(bashio::config 'private_key_file')
if [ ! -f "$PRIVATE_KEY_FILE" ]; then
bashio::log.info 'Generate keypair'
mkdir -p "$(dirname "$PRIVATE_KEY_FILE")"
ssh-keygen -t rsa -b 4096 -f "$PRIVATE_KEY_FILE" -N ''
bashio::log.info "Generated key-pair in $PRIVATE_KEY_FILE"
else
bashio::log.info "Use private key from $PRIVATE_KEY_FILE"
fi
HOST=$(bashio::config 'remote_host')
USERNAME=$(bashio::config 'username')
FOLDERS=$(bashio::config 'folders')
REMOTE_FOLDER=$(bashio::config 'remote_folder')
if bashio::config.has_value 'remote_port'; then
PORT=$(bashio::config 'remote_port')
bashio::log.info "Use port $PORT"
else
PORT=22
fi
if bashio::config.has_value 'options'; then
OPTIONS=$(bashio::config 'options')
bashio::log.info "Use options $OPTIONS"
else
OPTIONS='-archive --recursive --compress --delete --prune-empty-dirs'
fi
for folder in $FOLDERS; do
bashio::log.info "Sync $folder -> ${REMOTE_FOLDER}"
# shellcheck disable=SC2086
rsync ${OPTIONS} \
-e "ssh -p ${PORT} -i ${PRIVATE_KEY_FILE} -oStrictHostKeyChecking=no" \
"$folder" "${USERNAME}@${HOST}:${REMOTE_FOLDER}"
done
bashio::log.info "Synced all folders"