# shellcheck shell=bash

wait_command() {
  local command="$1"; shift
  local wait_seconds="${1:-40}"; shift # 40 seconds as default timeout

  until [[ $((wait_seconds--)) -eq 0 ]] || eval "$command &> /dev/null" ; do sleep 1; done

  ((++wait_seconds))
}

cleanup() {
    echo "Cleaning processes started by $1"

    # kill all processes whose parent is this process
    pkill -P $$

    if [[ -z "${REUSE_KIND_CLUSTERS}" ]]; then
      # Podman 3.x Mac/kind workaround - clean up ssh control socket
      if test -e "${DEMOS_DIR}/${PODMAN_SSH_CONTROL_SOCKET}"; then
        pkill -f "${PODMAN_SSH_CONTROL_SOCKET}"
      fi
    fi

    # Is this used?
    eval "$2"
}

setupTraps() {
  for sig in INT QUIT HUP TERM; do
    trap "
      cleanup $1
      trap - $sig EXIT
      kill -s $sig "'"$$"' "$sig"
  done
  trap "cleanup $1" EXIT
}

