/
mpd_del_album
executable file
·50 lines (42 loc) · 1.13 KB
/
mpd_del_album
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/bin/zsh
# http://devel.japh.se/mpd_del_album/
# 2012-05-10 18:11:36
# abstract: remove album from mpd playlist
IFS="$(printf '\n\t')"
mpd_del_album_artist="$@"
[ -z $mpd_del_album_artist ] \
&& mpd_del_album_artist=$(mpc --format '%artist%' | head -1)
export mpd_del_album_artist
base=/mnt/Music_1
album="$(mpc --format '%file%'|head -1 | perl -pe 's{(.+)/.+$}{$1}')"
printf "Remove:\n \e[38;5;30m$album\e[m ? [y/N] "
read answer;
if [[ $answer != 'y' ]]; then
warn 'bailing out'
else
rmc "$base/$album"
more_albums=$(mpc search artist "$mpd_del_album_artist" \
| perl -pe 's{(.+)/.+$}{$1}' \
| sort -u \
| grep -vF "$album" \
| grep -vP '^(Music_[1-7]/)?(VA|OST|GAME|.new)/')
if [[ -n $more_albums ]]; then
perl -e '
warn "=" x 80, "\n";
printf "Found additional albums by \e[1m%s\e[m:\n",
$ENV{mpd_del_album_artist},
'
for next_album in $more_albums; do
printf " \e[38;5;30m$next_album\e[m [y/N] "
read answer
if [[ $answer != 'y' ]]; then
continue
else
rmc "$base/$next_album"
fi
done
else
exit
fi
fi
unset -v mpd_del_album_artist