]>
git.sthu.org Git - shutils.git/blob - mp-play
5 player
="/usr/bin/mplayer"
6 if [ -x "/usr/bin/mplayer2" ]; then
7 player
="/usr/bin/mplayer2"
11 $player -af help |
grep -q bs2b
&& playeropts
="${playeropts} -af-add bs2b"
26 echo "Usage: $0 [-h|--help]"
27 echo " $0 [OPTIONS] [--] [DESTINATIONS]"
30 echo " -a, --recursive recursively find files to play"
31 echo " -h, --help show this message"
32 echo " -q, --quiet do not produce output when playing"
33 echo " -r, --repeat repeat playing infintely"
34 echo " -R, --random randomize files"
35 echo " --remove ask to remove played files after playing"
36 echo " --reverse reverse playing order"
37 echo " --time sort by age of file"
38 echo " -v, --verbose produce more output"
41 if ! options
=$
(getopt
-u -o hRravq
-l time,random
,repeat
,recursive
,reverse
,remove
,quiet
,verbose
-- "$@")
52 -h|
--help) showHelp
; exit 0 ;;
53 -R|
--random) optRandom
="-shuffle" ;;
54 -r|
--repeat) optRepeat
="-loop 0" ;;
55 -a|
--recursive) optRecursive
=1 ;;
56 -v|
--verbose) optVerbose
=1 ;;
57 -q|
--quiet) optQuiet
="-quiet" ;;
58 --remove) optRemove
=1 ;;
59 --reverse) optReverse
=1 ;;
60 --time) optSorttime
=1 ;;
62 -*) echo "Unrecognized option $1" >&2; showHelp
>&2; exit 1 ;;
70 if [ "$optRecursive" == "1" ]; then
78 find "$@" -maxdepth $maxlevel -type f \
79 -iname "*.mp3" -or -iname "*.avi" -or -iname "*.flv" \
80 -or -iname "*.mp4" -or -iname "*.ogg" \
83 [ "$optSorttime" == "1" ] && cat "$playlist" |
xargs ls --sort=time | sponge
"$playlist"
84 [ "$optReverse" == "1" ] && cat "$playlist" |
tac | sponge
"$playlist"
87 cntfiles
=`wc -l $playlist | cut -d " " -f 1`
90 if [ "$cntfiles" == "0" ]
92 echo "No files found."
98 echo "Playing $cntfiles files..."
101 # Print playlist, if we ask for removing files later
102 if [ "$optRemove" == "1" -o "$optVerbose" == "1" ]; then
108 $player $playeropts $optQuiet $optRandom $optRepeat -playlist "$playlist"
111 # Remove the files in the playlist
112 if [ "$optRemove" == "1" ]; then
114 echo -n "Removing played files? (y/a/N) "
116 if [ x
"y" == x
"$isdel" ]; then
117 rm -v `cat $playlist`
118 elif [ x
"a" == x
"$isdel" ]; then
119 rm -v -i `cat $playlist`
123 #Remove the playlist itself