#!/usr/bin/env bash set -e . ~/src/dotfiles/lib-src/posix-defuns.sh [ \( "$1" = --client -o "$1" = --server \) -a "$#" -eq 2 ] \ || fail "usage: pactl-tunnel-sink --client|--server ADDRESS" addr=$2 port=4656 def= mod= cleanup() { set +e [ -n "$def" ] && pactl set-default-sink "$def" [ -n "$mod" ] && pactl unload-module "$mod" } trap cleanup INT TERM EXIT case "$1" in --client) def="$(pactl get-default-sink)" mod="$(pactl load-module module-tunnel-sink server=tcp:$addr:$port)" pactl set-default-sink "tunnel-sink.tcp:$addr:$port" ;; --server) sudo firewall-cmd --add-port=$port/tcp mod="$(pactl load-module module-native-protocol-tcp port=$port listen=$addr)" ;; esac read -n 1 -r -s -p "Press any key to exit .."