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