From a869bbfdeafcc1684baba6ab67cc52df80c5a4f9 Mon Sep 17 00:00:00 2001 From: Pitriss Date: Mon, 26 Aug 2019 12:11:05 +0200 Subject: [PATCH] Initial commit - Initial version. --- .gitignore | 1 + README.md | 9 ++++++++- mplaydiff.sh | 42 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 mplaydiff.sh 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