summaryrefslogtreecommitdiff
path: root/ar/.local/bin/dmenudelmusic
diff options
context:
space:
mode:
Diffstat (limited to 'ar/.local/bin/dmenudelmusic')
-rwxr-xr-xar/.local/bin/dmenudelmusic15
1 files changed, 12 insertions, 3 deletions
diff --git a/ar/.local/bin/dmenudelmusic b/ar/.local/bin/dmenudelmusic
index 91994fb..fce8db2 100755
--- a/ar/.local/bin/dmenudelmusic
+++ b/ar/.local/bin/dmenudelmusic
@@ -1,7 +1,9 @@
#!/bin/sh
music_dir="${XDG_MUSIC_DIR:-${HOME}/Music}"
-music_txt="${music_dir}/.music.txt"
+dotfiles_dir="${XDG_DOTFILES_DIR:-${HOME}/.dotfiles}"
+music_txt="${dotfiles_dir}/global/Music/.music.txt"
+music_titles="${dotfiles_dir}/global/Music/.music_titles.txt"
playlist_dir="${XDG_CONFIG_HOME:-${HOME}/.config}/mpd/playlists"
# Select the relative path. Sort the list so "first match" semantics in dmenu
@@ -34,8 +36,15 @@ confirm=$(printf "Yes\nNo" | dmenu -i -p "Delete $selected_relpath and update mp
exit 0
}
-# Remove video_id line from .music.txt (fixed-string match)
-if grep -Fv "$video_id" "$music_txt" >"${music_txt}.tmp" && mv "${music_txt}.tmp" "$music_txt"; then
+# Remove video_id line from .music.txt and .music_titles.txt (fixed-string match)
+remove_id_from() {
+ _file="$1"
+ [ -f "$_file" ] || return 0
+ _tmp="$(mktemp)" || return 1
+ grep -Fv "$video_id" "$_file" >"$_tmp" && mv "$_tmp" "$_file"
+}
+
+if remove_id_from "$music_txt" && remove_id_from "$music_titles"; then
# Remove the relative path from playlists (-F avoids regex pitfalls with [], (), etc.)
for playlist in "$playlist_dir"/*.m3u; do
[ -e "$playlist" ] || continue