aboutsummaryrefslogtreecommitdiff
path: root/mpc_update
diff options
context:
space:
mode:
authortdback <tyler@tdback.net>2024-12-04 18:50:37 -0500
committertdback <tyler@tdback.net>2024-12-04 18:50:37 -0500
commit58347fdfe21315ad3ccc0bd7c4703a8ec7aae797 (patch)
tree393fe8d69962e070c522e889b672ee9e97a88207 /mpc_update
initial commit to new repo
Diffstat (limited to 'mpc_update')
-rwxr-xr-xmpc_update26
1 files changed, 26 insertions, 0 deletions
diff --git a/mpc_update b/mpc_update
new file mode 100755
index 0000000..53adf2b
--- /dev/null
+++ b/mpc_update
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+# mpc_update: Update an mpd playlist to include new songs in the music
+# directory.
+
+yell() { echo "$0: $*" >&2; }
+die() { yell "$*"; exit 111; }
+try() { "$@" || die "cannot $*"; }
+
+[ "$#" -ne 2 ] && echo "usage: mpc_update <playlist> <music directory>" >&2
+
+PLAYLIST="$1"
+MUSIC_DIR="$2"
+
+[ -d "$MUSIC_DIR" ] && cd "$MUSIC_DIR" ||
+ die "music directory '$MUSIC_DIR' does not exist!"
+
+# Clear the current playlist to prevent song duplication in mpd.
+[ -e "$HOME/.local/share/mpd/playlists/${PLAYLIST}.m3u" ] &&
+ try mpc clear >/dev/null &&
+ try mpc rm "$PLAYLIST"
+
+# Add every song in the music directory.
+try mpc add -- *
+
+try mpc save "$PLAYLIST"