linux-image-manager/scripts/data/import-from-system.sh

63 lines
2.1 KiB
Bash
Raw Normal View History

2019-09-30 15:29:28 +02:00
#!/bin/bash
2019-10-01 11:59:31 +02:00
#
2019-09-30 15:29:28 +02:00
# Imports data from the system
# @author Kevin Veen-Birkenbach [aka. Frantz]
# @param $1 If the first parameter is "reverse" the data will be exported to the system
2019-10-01 11:59:31 +02:00
#
2019-10-01 12:30:27 +02:00
# shellcheck source=/dev/null # Deactivate SC1090
# shellcheck disable=SC2143 # Comparing with -z allowed
2020-05-02 12:39:00 +02:00
source "$(dirname "$(readlink -f "${0}")")/../base.sh" || (echo "Loading base.sh failed." && exit 1)
2019-10-01 12:30:27 +02:00
if [ -z "$(mount | grep "$DECRYPTED_PATH")" ]
then
2019-10-01 12:30:27 +02:00
echo "The decrypted folder $DECRYPTED_PATH is locked. You need to unlock it!"
bash "$SCRIPT_PATH/unlock.sh" || exit 1;
fi
2019-11-02 09:43:27 +01:00
if [ "$1" = "reverse" ]
then
MODE="export"
else
MODE="import"
fi
CONCRETE_BACKUP_FOLDER="$BACKUP_PATH/$MODE/$(date '+%Y%m%d%H%M%S')"
2019-11-22 11:53:23 +01:00
mkdir -p "$CONCRETE_BACKUP_FOLDER"
2019-09-30 15:29:28 +02:00
for system_item_path in "${BACKUP_LIST[@]}";
do
2019-10-01 12:30:27 +02:00
data_item_path="$DATA_PATH$system_item_path"
2019-11-02 09:43:27 +01:00
if [ "$MODE" = "export" ]
2019-09-30 15:29:28 +02:00
then
destination="$system_item_path"
source="$data_item_path"
2019-09-30 16:36:34 +02:00
echo "Export data from $source to $destination..."
2019-09-30 15:29:28 +02:00
else
source="$system_item_path"
destination="$data_item_path"
2019-09-30 16:36:34 +02:00
echo "Import data from $source to $destination..."
2019-09-30 15:29:28 +02:00
fi
if [ -f "$destination" ]
then
echo "The destination file allready exists!";
echo "Difference:"
2019-10-01 07:55:33 +02:00
diff "$destination" "$source"
2019-09-30 15:29:28 +02:00
fi
2019-10-01 07:55:33 +02:00
destination_dir=$(dirname "$destination")
2019-09-30 15:29:28 +02:00
mkdir -p "$destination_dir"
2019-09-30 16:13:26 +02:00
if [ -f "$source" ]
then
2019-12-03 14:22:10 +01:00
backup_dir=$(dirname "$CONCRETE_BACKUP_FOLDER/$system_item_path");
mkdir -p "$backup_dir"
2019-09-30 16:13:26 +02:00
echo "Copy data from $source to $destination..."
2019-12-03 14:22:10 +01:00
rsync -abcEPuvW --backup-dir="$backup_dir" "$source" "$destination"
2019-09-30 16:13:26 +02:00
else
if [ -d "$source" ]
then
2019-11-02 09:43:27 +01:00
mkdir -p "$destination"
2019-12-03 14:22:10 +01:00
backup_dir="$CONCRETE_BACKUP_FOLDER/$system_item_path";
mkdir -p "$backup_dir"
2019-11-02 09:43:27 +01:00
echo "Copy data from directory $source to directory $destination..."
2019-12-03 14:22:10 +01:00
rsync -abcEPuvW --delete --backup-dir="$backup_dir" "$source" "$destination"
else
echo "$source doesn't exist. Copying data is not possible."
fi
2019-09-30 16:13:26 +02:00
fi
2019-09-30 15:29:28 +02:00
done