#!/bin/bash
if [ "$EUID" -ne 0 ]
then echo "Please run as root"
	exit
fi

if (( $# != 7 )); then
    echo "usage: $0 fakesink|regular|cava|icecast|snapcast <spotify_username> <spotify_password> <spotify_client_id> <spotify_client_secret> <soundcloud_auth_token> <jamendo_client_id>"
	exit 1
fi

if [[ "$1" == "fakesink" ]]; then
	OUTPUT='fakesink sync=true'
elif [[ "$1" == "regular" ]]; then
	OUTPUT='rgvolume ! audioconvert ! audioresample ! pulsesink server=127.0.0.1'
elif [[ "$1" == "cava" ]]; then
	OUTPUT='rgvolume ! audioconvert ! audioresample ! tee name=t ! queue ! pulsesink server=127.0.0.1 device=cava t. ! queue max-size-bytes=85000000 max-size-buffers=0 max-size-time=0 ! pulsesink server=127.0.0.1 ts-offset=85000000'
elif [[ "$1" == "icecast" ]]; then
	OUTPUT='rgvolume ! audioconvert ! audioresample ! lamemp3enc ! shout2send async=false mount=stream'
elif [[ "$1" == "snapcast" ]]; then
	OUTPUT='rgvolume ! audioconvert ! audioresample ! audio\/x-raw,rate=48000,channels=2,format=S16LE ! filesink location=\/tmp\/snapfifo'
else
	exit 1
fi

sed -i -r -e "s/(^output\s*=).*/\1 $OUTPUT/" /etc/mopidy/mopidy.conf

sed -i -r -e "s/(^username\s*=).*/\1 $2/" /etc/mopidy/mopidy.conf
sed -i -r -e "s/(^password\s*=).*/\1 $3/" /etc/mopidy/mopidy.conf
# only replace first occurrence
sed -i -r -e "0,/^client_id/s/(^client_id\s*=).*/\1 $4/" /etc/mopidy/mopidy.conf
sed -i -r -e "s/(^client_secret\s*=).*/\1 $5/" /etc/mopidy/mopidy.conf
sed -i -r -e "s/(^auth_token\s*=).*/\1 $6/" /etc/mopidy/mopidy.conf
# only replace last occurrence
sed -i -r -e "$ s/(^client_id\s*=).*/\1 $7/" /etc/mopidy/mopidy.conf

systemctl restart mopidy.service
