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

ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
APP_NAME="ivs-calculator"
INSTALL_DIR="${HOME}/.local/share/${APP_NAME}"
BIN_DIR="${HOME}/.local/bin"
DESKTOP_DIR="${HOME}/.local/share/applications"
VENV_DIR="${INSTALL_DIR}/venv"

echo "Installing ${APP_NAME}..."

command -v python3 >/dev/null 2>&1 || {
  echo "Error: python3 was not found."
  exit 1
}

python3 - <<'PY' >/dev/null 2>&1 || {
import venv
PY
  echo "Error: python3 venv module is not available."
  echo "Install python3-venv and run the installer again."
  exit 1
}

rm -rf "${INSTALL_DIR}"
mkdir -p "${HOME}/.local/share" "${BIN_DIR}" "${DESKTOP_DIR}" "${INSTALL_DIR}"

cp -r "${ROOT_DIR}/src" "${INSTALL_DIR}/"

python3 -m venv "${VENV_DIR}"
"${VENV_DIR}/bin/pip" install --upgrade pip
"${VENV_DIR}/bin/pip" install -r "${INSTALL_DIR}/src/requirements.txt"

cat > "${BIN_DIR}/ivs-calculator" <<EOF
#!/usr/bin/env bash
set -euo pipefail
APP_DIR="${INSTALL_DIR}"
export PYTHONPATH="\${APP_DIR}"
exec "\${APP_DIR}/venv/bin/python" "\${APP_DIR}/src/application.py" "\$@"
EOF

chmod +x "${BIN_DIR}/ivs-calculator"

cat > "${DESKTOP_DIR}/ivs-calculator.desktop" <<EOF
[Desktop Entry]
Type=Application
Name=IVS Calculator
Comment=IVS Calculator Application
Exec=${BIN_DIR}/ivs-calculator
Terminal=false
Categories=Utility;
EOF

echo "Calculator installed successfully."
echo "Command: ${BIN_DIR}/ivs-calculator"
echo "Desktop file: ${DESKTOP_DIR}/ivs-calculator.desktop"