Advertisement
Guest User

mpc-wrapper

a guest
Nov 19th, 2012
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.17 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # © Claque, 2012
  4. # GPL3
  5.  
  6. CONF=$HOME/.config/mpd/conf
  7. AUDIODIR=$HOME/Media/Audio/
  8.  
  9. fileadd() {
  10. if [[ "$1" = "$AUDIODIR"* ]]; then
  11.     mpc -qh "$HOST" update "$(echo "$1" | sed "s@^$AUDIODIR@@" | sed 's@/[^/]*$@@')"
  12.     while [[ -n "$(mpc -h "$HOST" status | grep Updating)" ]]; do sleep 0.5; done
  13.     mpc -qh "$HOST" add "${arg##*"$AUDIODIR"}"
  14. else
  15.     find "$1" -type f | sort |
  16.     while read line
  17.     do
  18.         [[ $(file -bi "$line") = "audio/"* ]] && mpc -qh "$HOST" add "file://$line"
  19.     done
  20. fi
  21. }
  22.  
  23. m3uadd() {
  24. grep -Ev "^#" "$1" | sed 's/\r$//' |
  25. while read line; do
  26.     mpc -qh "$HOST" add "$line"
  27. done
  28. }
  29.  
  30. plsadd() {
  31. sed -n 's/^File[0-9]*=//p' "$1" | sed 's/\r$//' |
  32. while read line; do
  33.     mpc -qh "$HOST" add "$line"
  34. done
  35. }
  36.  
  37. if [[ "$1" == "--play" ]]
  38.     then PLAY=true; shift
  39.     else PLAY=false
  40. fi
  41.  
  42. HOST=$(grep -E '^ *\t*bind_to_address' "$CONF" | grep socket | cut -d\" -f2)
  43.  
  44. [[ $PLAY == "true" ]] && mpc -qh "$HOST" clear
  45. for arg do
  46.     case "$arg" in
  47.         *".m3u") m3uadd "$arg" ;;
  48.         *".pls") plsadd "$arg" ;;
  49.         *) fileadd "$arg" ;;
  50.     esac
  51. done
  52. [[ $PLAY == "true" ]] && mpc -qh "$HOST" play
  53.  
  54. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement