podcast/mpd-ympd-proxy-pause/entrypoint.sh

69 lines
1.0 KiB
Bash
Executable File

#! /bin/bash
set -u
set -e
function main() {
start_mpd
init_mpd
start_ympd
start_goprox
init_cron
exec /opt/pause
}
function start_mpd() {
mpd --stdout --no-daemon &
disown %1
sleep 1
until curl localhost:6600 2> /dev/null; do
echo waiting for mpd...
sleep 1
done
}
function start_ympd() {
ympd -h localhost -p 6600 -w 4041 &
disown %1
}
function start_goprox() {
./goprox -port 7000 -httpd 8000 -mpd 6600 &
disown %1
}
function init_mpd() {
mpc update
mpc consume 0
mpc repeat 1
mpc random 1
mpc clear
if [ -n "$(mpc lsplaylists | grep RESTORE)" ]; then
mpc load RESTORE
fi
mpc play
mpc pause
}
function init_cron() {
echo '
#! /bin/sh
set -e
set -u
mpc rm RESTORE || true
mpc save RESTORE
echo "Done: $(date)" >> /opt/mpd.save.log
' > /opt/mpd.save.sh
chmod +x /opt/mpd.save.sh
echo '*/15 * * * * sh /opt/mpd.save.sh' > /opt/cron
crontab /opt/cron
}
if [ "$0" == "${BASH_SOURCE[0]}" ]; then
main "${@:-}"
fi