#!/usr/bin/env bash
set -euo pipefail
umask 077

if [[ "$EUID" -eq 0 ]]; then
  printf '%s\n' 'Voer dit uit als je eigen gebruiker, zonder sudo.' >&2
  exit 1
fi
source_dir="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
script_dir="$HOME/.local/bin"
unit_dir="$HOME/.config/systemd/user"
config_dir="$HOME/.config/rclone"
local_dir="$HOME/.local/share/gdrive-local"
state_dir="$HOME/.local/state/gdrive-sync"
files=(gdrive-sync gdrive-watch gdrive-sync.service gdrive-sync.timer
       gdrive-watch.service gdrive-initial-download.service gdrive-sync-filters.conf)
targets=("$script_dir/gdrive-sync" "$script_dir/gdrive-watch"
         "$unit_dir/gdrive-sync.service" "$unit_dir/gdrive-sync.timer"
         "$unit_dir/gdrive-watch.service" "$unit_dir/gdrive-initial-download.service"
         "$config_dir/gdrive-sync-filters.conf")

# Controleer alles voordat er bestanden worden geplaatst.
for path in "$HOME/GoogleDrive" "$local_dir" "$state_dir" "${targets[@]}"; do
  if [[ -e "$path" || -L "$path" ]]; then
    printf 'Bestaat al; installatie gestopt: %s\n' "$path" >&2
    exit 1
  fi
done
for file in "${files[@]}"; do
  [[ -f "$source_dir/$file" ]] || { printf 'Ontbreekt: %s\n' "$file" >&2; exit 1; }
done
[[ -x /usr/bin/rclone ]] || { printf '%s\n' 'Installeer rclone in /usr/bin/rclone.' >&2; exit 1; }
/usr/bin/python3 -c 'import requests'
mkdir -p "$script_dir" "$unit_dir" "$config_dir" "$local_dir" "$state_dir"
for index in "${!files[@]}"; do
  mode=600
  if (( index < 2 )); then mode=700; fi
  install -m "$mode" "$source_dir/${files[$index]}" "${targets[$index]}"
done
printf '%s\n' 'Bestanden geplaatst. Volg nu stap 4 van de handleiding.'
