#!/bin/bash
#
# 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
#
# shellcheck source=/dev/null # Deactivate SC1090
# shellcheck disable=SC2143  # Comparing with -z allowed
source "$(dirname "$(readlink -f "${0}")")/base.sh"
if [ -z "$(mount | grep "$DECRYPTED_PATH")" ]
  then
    echo "The decrypted folder $DECRYPTED_PATH is locked. You need to unlock it!"
    bash "$SCRIPT_PATH/unlock.sh" || exit 1;
fi
declare -a BACKUP_LIST=("$HOME/.ssh/" \
  "$HOME/.gitconfig" \
  "$HOME/.atom/config.cson" \
  "$HOME/Documents/certificates/" \
  "$HOME/Documents/recovery_codes/" \
  "$HOME/Documents/identity/" \
  "$HOME/Documents/passwords/" \
  "$HOME/.config/dconf/user" \
  "$HOME/.local/share/rhythmbox/rhythmdb.xml" \
  "$HOME/.config/keepassxc/keepassxc.ini");
for system_item_path in "${BACKUP_LIST[@]}";
do
    data_item_path="$DATA_PATH$system_item_path"
    if [ "$1" = "reverse" ]
      then
        destination="$system_item_path"
        source="$data_item_path"
        echo "Export data from $source to $destination..."
      else
        source="$system_item_path"
        destination="$data_item_path"
        echo "Import data from $source to $destination..."
    fi
    if [ -f "$destination" ]
      then
        echo "The destination file allready exists!";
        echo "Difference:"
        diff "$destination" "$source"
    fi
    destination_dir=$(dirname "$destination")
    mkdir -p "$destination_dir"
    if [ -f "$source" ]
      then
        echo "Copy data from $source to $destination..."
        cp -vi "$source" "$destination"
      else
        if [ -d "$source" ]
          then
            echo "Copy data from directory $source to directory $destination_dir..."
            cp -vir "$source" "$destination_dir"
          else
            echo "$source doesn't exist. Copying data is not possible."
        fi
    fi
done
