]> diplodocus.org Git - flac-archive/blob - fa-rip
Support a -t track-count option to fa-rip and mkcue, so we can skip
[flac-archive] / fa-rip
1 #! /usr/bin/env zsh
2
3 # $Id$
4
5 set -e
6
7 function get_cddev {
8 typeset raw
9 raw=$(sysctl -n kern.rawpartition > /dev/null | awk '{printf "%c",97+$0}')
10
11 if [[ -n ${ZSH_VERSION} ]]; then
12 setopt NULL_GLOB
13 fi
14
15 for CDDEV in /dev/{cdroms/cdrom*,cdrom*,rcd*${raw},{a,}cd*c}; do
16 [[ -e ${CDDEV} ]] && return 0
17 done
18
19 return 1
20 }
21
22 trackcount=
23 while getopts 'd:t:' ch; do
24 case ${ch} in
25 d)
26 CDDEV=${OPTARG}
27 export CDDEV
28 ;;
29 t)
30 trackcount=${OPTARG}
31 ;;
32 ?)
33 echo 'fa-rip [-t track-count]' >&2
34 exit 2
35 ;;
36 esac
37 done
38 shift $((${OPTIND} - 1))
39
40 if [[ -z ${CDDEV} ]]; then
41 if ! get_cddev; then
42 echo 'CDDEV environment variable not set, defaults did not work' >&2
43 exit 2
44 fi
45 export CDDEV
46 fi
47
48 dir=$(mktemp -d flac-archive.XXXXXXXXXX)
49 cd ${dir}
50
51 if [[ -z ${trackcount} ]]; then
52 mkcue ${CDDEV} > cue
53 trackcount=$(grep -c 'TRACK.*AUDIO' cue)
54 else
55 mkcue -t ${trackcount} ${CDDEV} > cue
56 fi
57
58 fa-tags ${trackcount}
59
60 exec cdparanoia -d ${CDDEV} 1-${trackcount} wav