blob: d9f67995c371496378e4fd87e90f5001d83db81f (
plain)
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
|
# MPD control script based on socat and an idea I saw somewhere
#!/bin/bash
case "$1" in
"") socat - tcp-connect:localhost:6600 | grep -v '^OK' | sed 's/^$//';;
"dir") shift; ls "$1" | sed "s/\*//" | sed -e "$(echo 's/^/'"$(echo "$1/" | $0 strip )"'\//')" | egrep '\.(mp3|ogg|aac|flac|wav|mid|mp4|mp2|mod|mpc|mpp)';;
"strip") sed 's/\/$//' | sed 's:\(.*\/\)*\(.*\/\)*:\2\\/:' | sed 's/^\\\///' ;;
"get") shift; grep -i "^$1:" | sed 's|^'$1': \(.*\)|\1|i' ;;
"add") sed 's|\(.*\)|add \"\1\"|' | $0 ;;
"filter") shift; eval $(perl -e 'print join ("|",map { "grep -i " . $_ } @ARGV);' $*) ;;
"cmdlist") sed -e '1i command_list_begin' -e '$a command_list_end' ;;
"queue") gawk '{i--;printf "addid \"%s\" %d\n", $0, i}' ;;
"newlist") sed -e '1i clear' -e '$a play' ;;
"toggle") sed -e 's#state: \(stop\|pause\)#play#' -e 's#state: play#pause#' | tr 01 10 | tr -d : ;;
"reset-pl") echo add / | $0 newlist | $0 ;;
"w") $0 clear ;;
"d") $0 delete $2 ;;
"t") $0 status | grep state | $0 toggle | $0 ;;
"c") $0 currentsong ;;
"l") $0 playlist ;;
"g") $0 play `[ "$2" = "" ] && cat - || echo $2`;;
"n") $0 next ;;
"p") $0 previous ;;
"s") $0 search $2 $3 ;;
"ss") $0 playlistsearch $2 $3 ;;
*) echo $* | $0 ;;
esac
# Depreciated:
# "n") $0 g $(dc -e "$($0 cs | grep '^Pos:' | cut -c 6-) 1 + $($0 ls | wc -l) %p");; # awesome, but unnecessary
# "qry") $0 listall | $0 get | $0 filter $* ;;
# "n") $0 g $($0 status | $0 get nextsongid) ;;
# "p") $0 g $(dc -e "$($0 cs | grep '^Pos:' | cut -c 6-) 1 - p");;
|