#!/bin/bash #Author: Copyright Jelle de Jong #Note: Please send me an email if you enhanced the script #Version: 0.0.2 #Date: 23-07-2006 / 18-01-2007 / 29-03-07 #System: Xubuntu 7.04 #Information: man mpg123 #Category Thunar scripts #Name: Play MP3 #Description: Play a directory full with mp3 files #Command: xfce4-terminal -x ~/scripts/thunar/play-mp3.sh %F #Information: http://www.grymoire.com/Unix/Quote.html #Information: http://www.tldp.org/LDP/abs/html/arrays.html #Information: http://rafb.net/p/WOTlt235.html #Pattern: * #Selection: Directories; Audio Files # This software is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 2, or (at your option) any # later version. # # This software is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. cecho() { if [ "$1" = "black" ]; then echo -ne "\E[30m" elif [ "$1" = "red" ]; then echo -ne "\E[31m" elif [ "$1" = "green" ]; then echo -ne "\E[32m" elif [ "$1" = "yellow" ]; then echo -ne "\E[33m" elif [ "$1" = "blue" ]; then echo -ne "\E[34m" elif [ "$1" = "magenta" ]; then echo -ne "\E[35m" elif [ "$1" = "cyan" ]; then echo -ne "\E[36m" fi echo "$2" "$3" tput sgr0 } play_file() { mpg123 -C -v -a /dev/dsp "$@" #mpg123 -C -v -a /dev/dsp1 "$1" } check_program() { #whereis pdftk if [ ! -e /usr/bin/$1 ] then cecho "red" "$1 not found, installing now" sudo apt-get install "$1" fi } scan_directory() { #step 1: is there a mp3 in the folder #step 2: query that mp3 #step 3: check for other folders #step 4: scan that folder and repeat #query+=$(find "$1" -name *.mp3) #var1="test one.mp3";var2="test two.mp3";unset query;set -x;query+=("$var1");query+=("$var2");mpg123 -C -v -a /dev/dsp "${query[@]}" for file in "$1"/* do if [ -f "$file" ] then [[ "$file" = *.mp3 ]] && query+=("$file") fi if [ -d "$file" ] then scan_directory "$file" fi done } cecho "green" "processing:" for I in "$@" do filename=${I##*/} cecho "blue" "$filename" done cecho "blue" "---------------" for I in "$@" do cecho "green" "starting: " check_program mpg123 filename=${I##*/} if [ -d "$I" ] then unset query scan_directory "$I" if [ -n "$query" ] then play_file "${query[@]}" fi fi if [ -f "$I" ] then play_file "$I" fi cecho "green" "completed:" cecho "blue" "---------------" done cecho "green" "done, closing after 3 seconds" sleep 3 exit