diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b25c15b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*~ diff --git a/README.md b/README.md index 74a0ca9..5106732 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,10 @@ # mpd_playlist_diff -Script for creating diff from playlist based on stored playlist listing in another file. \ No newline at end of file +Simple script supposed to be run from cron which generates changelog of current MPD playlist. it is based on storing previous version of playlist and then doing some 'diff' magic with it and current playlist. I wrote this script for my MPD streaming instance. Log could be used as input data for statuspage. + +**Dependencies:** + + * mpc + +**Licence:** + WTFPL \ No newline at end of file diff --git a/mplaydiff.sh b/mplaydiff.sh new file mode 100644 index 0000000..50c9191 --- /dev/null +++ b/mplaydiff.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +finallog="/var/tmp/mplaydiff.log" + +if [ ! -r /var/tmp/mplaylist-old ]; then + mpc playlist > /var/tmp/mplaylist + sort -o /var/tmp/mplaylist /var/tmp/mplaylist + cp /var/tmp/mplaylist /var/tmp/mplaylist-old + echo "mpplaylists initialized" + exit 1 +fi + +check=$(cmp /var/tmp/mplaylist-old /var/tmp/mplaylist) +if [ -z "$check" ]; then + exit 0 +fi + +REMOVED=$(comm -23 /var/tmp/mplaylist-old /var/tmp/mplaylist) +comm -23 /var/tmp/mplaylist-old /var/tmp/mplaylist > /var/tmp/mplaylist-removed +ADDED=$(comm -13 /var/tmp/mplaylist-old /var/tmp/mplaylist) +comm -13 /var/tmp/mplaylist-old /var/tmp/mplaylist > /var/tmp/mplaylist-added + +datum=$(date +%Y%m%d-%H%M%S) +echo "::: $datum :::" >> $finallog + +if [ "$REMOVED" != "" ]; then +# echo "removed files:" >> $finallog +# cat /var/tmp/mplaylist-removed + sed -is "s/^/- /" /var/tmp/mplaylist-removed + cat /var/tmp/mplaylist-removed >> $finallog + echo +fi +if [ "$ADDED" != "" ]; then +# echo "added files:" >> $finallog +# cat /var/tmp/mplaylist-added + sed -is "s/^/+ /" /var/tmp/mplaylist-added + cat /var/tmp/mplaylist-added >> $finallog +fi + +mv -f /var/tmp/mplaylist /var/tmp/mplaylist-old +mpc playlist > /var/tmp/mplaylist +sort -o /var/tmp/mplaylist /var/tmp/mplaylist