1#!/usr/local/bin/bash 2# Example script for use with worker 3# converts CD tracks to other formats 4# based on scripts by Giulio Canevari <giuliogiuseppecarlo@interfree.it> 5 6if [ "$#" -lt "1" ]; then 7 echo "$0 <title1> ..." 8 exit 5 9fi 10 11case "`basename $0`" in 12 cd2flac*) 13 MODE="flac" 14 PROGS="cdparanoia normalize flac" 15 ;; 16 cd2mp3*) 17 MODE="mp3" 18 PROGS="cdparanoia normalize lame" 19 ;; 20 cd2ogg*) 21 MODE="ogg" 22 PROGS="cdparanoia normalize oggenc" 23 ;; 24 *) 25 MODE="wav" 26 PROGS="cdparanoia normalize" 27 ;; 28esac 29 30for i in $PROGS; do 31 if [ -z "`which $i 2>/dev/null`" ]; then 32 echo "You need $i to run this script!" 33 exit 5 34 fi 35done 36 37if [ -z "$TMP" ]; then 38 TMP=/tmp 39fi 40 41for T in $*; do 42 while true; do 43 TF="$TMP/worker-$$-$RANDOM.wav" 44 if [ ! -e "$TF" ]; then 45 touch "$TF" 46 chmod 0600 "$TF" 47 break 48 fi 49 done 50 cdparanoia $T "$TF" 51 normalize "$TF" 52 case "$MODE" in 53 flac) 54 flac --best "$TF" -o Track-$T.flac 55 ;; 56 mp3) 57 lame -b 256 "$TF" Track-$T.mp3 58 ;; 59 ogg) 60 oggenc -q 8 "$TF" -o Track-$T.ogg 61 ;; 62 *) 63 mv "$TF" Track-$T.wav 64 ;; 65 esac 66 rm -f "$TF" 67done 68