#!/usr/bin/env bash

# resources from agent v1
# We want to keep certain directories for downgrade purposes:
# - /var/lib/qbee/inputs
# - /var/lib/qbee/qbee

SYSTEMD_UNIT_FILES_V1=(
  "qbee-agent.service"
  "qbee-scheduler.service"
  "qbee-watchdog.service"
  "qbee-vpn.service"
)

VAR_LIB_QBEE_DIRS_V1=(
  "bin"
  "lastseen"
  "log"
  "masterfiles"
  "modules"
  "outputs"
  "ppkeys"
  "reports"
  "run"
)

SYSTEMD_DIR_V1="/etc/systemd/system"
VAR_LIB_DIR="/var/lib/qbee"

UPGRADE_FROM_V1=0

# Check if this is an upgrade from v1
if [[ -L /var/lib/qbee/bin/cf-promises ]]; then
  UPGRADE_FROM_V1=1
fi

if [[ $UPGRADE_FROM_V1 -gt 0 ]]; then

  # Stop old v1 vpn if active
  if [[ -d /run/systemd/system ]]; then
    if systemctl -q is-active qbee-vpn; then
      systemctl stop qbee-vpn
    fi
  fi

  # Remove old v1 qbee-agent unit files
  for svc_file in "${SYSTEMD_UNIT_FILES_V1[@]}"; do
    if [[ -f "$SYSTEMD_DIR_V1/$svc_file" ]]; then
      rm "$SYSTEMD_DIR_V1/$svc_file" -f
    fi
  done

  # Remove old v1 qbee-agent workdirs
  for var_dir in "${VAR_LIB_QBEE_DIRS_V1[@]}"; do
    if [[ -d "$VAR_LIB_DIR/$var_dir" ]]; then
      rm "${VAR_LIB_DIR:?}/${var_dir:?}" -rf
    fi
  done

  # Remove old v1 randseed file
  if [[ -f /var/lib/qbee/randseed ]]; then
    rm /var/lib/qbee/randseed -f
  fi
fi
