#!/bin/bash
#
# Purpose : Run a command in a new terminal window, for notifications that
#           start something when clicked (system/update-check, system/email-watch).
#
# run-in-terminal <command>, e.g. run-in-terminal update
#
# bash -i reads ~/.bashrc, as if the user had typed the command themselves, and
# the window stays open to show how it went.

run=(bash -ic "$1; echo; read -rp \"Press Enter to close this window.\"")
if command -v xdg-terminal-exec &> /dev/null; then
  terminal=(xdg-terminal-exec)
elif command -v kgx &> /dev/null; then
  terminal=(kgx --)
elif command -v ghostty &> /dev/null; then
  terminal=(ghostty -e)
elif command -v kitty &> /dev/null; then
  terminal=(kitty)
else
  notify-send --app-name=CoreDesktop "No terminal found" "Open a terminal and run $1."
  exit 1
fi

# Run the terminal as its own unit: when the service that called this exits,
# systemd stops everything still running in it, which would close the terminal
exec systemd-run --user --quiet --collect -- "${terminal[@]}" "${run[@]}"
