SHARE
TWEET

playlist

a guest Sep 26th, 2010 157 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/bin/bash        
  2. # playlist          
  3. #                  
  4. # INFORMAÇÕES:      
  5. # AUTOR      : /dev/movebo <movebo (a) linux ime usp br>
  6. # DESCRIÇÃO  : Criação e execução de playlists baseado na busca por padrões
  7. # LICENÇA    : GPL v2                                                      
  8.  
  9. DIR=/mnt/arquivos/music
  10. M3U=/tmp/playlist.m3u  
  11. CMD=`basename $0`      
  12. MPLAYER=`which mplayer`
  13. PLAYLISTVERSAO=1.0    
  14.  
  15. [ -f $M3U ] && rm $M3U || touch $M3U
  16. [ -z $MPLAYER ] && echo "Erro: mplayer não encontrado" && exit 1
  17.  
  18. case "$1" in
  19.         -d | --dir )
  20.                 shift
  21.                 [ -d "$*" ] && \
  22.                         find "$@" -type f \
  23.                         \( -iname '*[afmow][aglmpv4][acegiv34]' -print \) -o \
  24.                         \( -iname '*[mf][pl][ea][gc]'           -print \)  | \
  25.                         sort | uniq > $M3U                                    
  26.                 ;;                                                            
  27.         -f | --file )                                                        
  28.                 shift                                                        
  29.                 WORD=$@                                                      
  30.                 find $DIR -type f \                                          
  31.                         \( -iname "*${WORD//\ /*}*"                -print \) -a \
  32.                         \( \( -iname '*[afmow][aglmpv4][acegiv34]' -print \) -o \
  33.                         \( -iname '*[mf][pl][ea][gc]'           -print \) \)  | \
  34.                         sort | uniq > $M3U                                      
  35.                 ;;                                                              
  36.         -a | --all )                                                            
  37.                 shift                                                            
  38.                 WORD=$@                                                          
  39.                 FILE=` find $DIR -type d -iname "*${WORD//\ /*}*" -print | sort | head -n1 `
  40.                 [ -n "$FILE" ] && \                                                        
  41.                         find "$FILE" -type f \
  42.                         \( -iname '*[afmow][aglmpv4][acegiv34]' -print \) -o \
  43.                         \( -iname '*[mf][pl][ea][gc]'           -print \)  | \
  44.                         sort | uniq > $M3U
  45.                 ;;
  46.         -h | --help )
  47.                 echo -e "Uso: $CMD -d DIRETÓRIO\n ou: $CMD -f FILENAME\n ou: $CMD -a KEYWORD"
  48.                 echo -e "Cria e toca um playlist de músicas a partir de palavras-chave.\n"
  49.                 echo -e "Argumentos obrigatórios para opções longas também o são para opções curtas."
  50.                 echo -e "  -d, --dir\\033[32Gtoca recursivamente as músicas deste diretório"
  51.                 echo -e "  -f, --file\\033[32Gtoca as músicas com o padrão no nome do arquivo"
  52.                 echo -e "  -a, --all\\033[32Gtoca recursivamente as músicas sob o diretório com o padrão"
  53.                 echo -e "  -h, --help\\033[32Gmostra esta ajuda e finaliza"
  54.                 echo -e "  -v, --version\\033[32Ginforma a versão e finaliza"
  55.                 echo -e "\nReport playlist bugs to movebo@linux.ime.usp.br"
  56.                 exit 0
  57.                 ;;
  58.         -v | --version )
  59.                 echo -e "$CMD versão: $PLAYLISTVERSAO"
  60.                 exit 0
  61.                 ;;
  62.         * )
  63.                 echo -e "Uso:\n\t$CMD -d DIR\n\t$CMD -a DIRNAME\n\t$CMD -f FILENAME\n\t$CMD --help\n\t$CMD --version"
  64.                 exit 1
  65.                 ;;
  66. esac
  67.  
  68. if [ "`file -b $M3U`" == "empty" ]; then
  69.         echo "Nenhum resultado encontrado"
  70. else
  71.         $MPLAYER -quiet -volume 65 -playlist $M3U
  72. fi
  73. exit 0
RAW Paste Data
Want to get better at Bash?
Learn to code Bash in 2017
Pastebin PRO Summer Special!
Get 40% OFF on Pastebin PRO accounts!
Top