#! /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