#!/usr/bin/env bash

set -efo pipefail

  SWAY_FLAGS=()

  while [[ "$#" -gt 0 ]]; do
      case $1 in
          --)
            shift
            break
            ;;
          *)
            SWAY_FLAGS+=($1)
            ;;
      esac
      shift
  done

$@ &
pid=$!

swaymsg -t subscribe -m '[ "window" ]' \
  | jq --unbuffered --argjson pid "$pid" '.container | select(.pid == $pid) | .id' \
  | xargs -I '@' -- swaymsg "[ con_id=@ ] ${SWAY_FLAGS[@]}" &

subscription=$!

echo Going into wait state

# Wait for our process to close
tail --pid=$pid -f /dev/null

echo Killing subscription
kill $subscription
