nsd: add nsd-incrserial
[shutils.git] / mp-play
diff --git a/mp-play b/mp-play
index 7adc101b7a15176ff0d13096444759a694d32131..96e08d9f909ba3b37c25df3ca1f079bb819e8e13 100755 (executable)
--- a/mp-play
+++ b/mp-play
@@ -7,7 +7,9 @@ if [ -x  "/usr/bin/mplayer2" ]; then
        player="/usr/bin/mplayer2"
 fi
 
-playeropts="-af-add bs2b"
+playeropts=""
+$player -af help | grep -q bs2b && playeropts="${playeropts} -af-add bs2b"
+
 
 optRandom=""
 optRepeat=""
@@ -21,22 +23,28 @@ optSorttime=0
 
 function showHelp
 {
-       echo "Plays mp3 files in all subdirectories."
-       echo "Usage: ./mp-play.sh [-h|--help] [-R|--random] [-r|--repeat] "
-       echo "                    [-a|-recursive] [--reverse] [--time]"
-       echo "                    [--remove] [-q|--quiet] [-v|--verbose] [DESTINATION]"
+       echo "Usage: $0 [-h|--help]"
+       echo "       $0 [OPTIONS] [--] [DESTINATIONS]"
        echo ""
-       echo "Options:"
-       echo "  --time             sort by age of file"
-       echo "  -R, --random       randomize files"
-       echo "  -r, --repeat       repeat playing infintely"
+       echo "OPTIONS:"
        echo "  -a, --recursive    recursively find files to play"
-       echo "  --reverse          reverse playing order"
-       echo "  --remove           ask to remove played files after playing"
+       echo "  -h, --help         show this message"
        echo "  -q, --quiet        do not produce output when playing"
-       echo "  -v, --versbose     produce more output"
+       echo "  -r, --repeat       repeat playing infintely"
+       echo "  -R, --random       randomize files"
+       echo "      --remove       ask to remove played files after playing"
+       echo "      --reverse      reverse playing order"
+       echo "      --time         sort by age of file"
+       echo "  -v, --verbose      produce more output"
 }
 
+if ! options=$(getopt -u -o hRravq -l time,random,repeat,recursive,reverse,remove,quiet,verbose -- "$@")
+then
+       showHelp >&2
+       exit 1
+fi
+set -- $options
+
 #Parse the arguments
 while [ $# -gt 0 ]
 do
@@ -50,6 +58,8 @@ do
                --remove) optRemove=1 ;;
                --reverse) optReverse=1 ;;
                --time) optSorttime=1 ;;
+               --) shift; break ;;
+               -*) echo "Unrecognized option $1" >&2; showHelp >&2; exit 1 ;;
                *) break ;;
        esac
        shift
@@ -62,7 +72,7 @@ if [ "$optRecursive" == "1" ]; then
 else
        maxlevel=1
 fi
-       
+
 
 # Create playlist
 find "$@" -maxdepth $maxlevel -type f \