#! /usr/bin/env zsh # $Id$ set -e function get_cddev { typeset raw raw=$(sysctl -n kern.rawpartition > /dev/null | awk '{printf "%c",97+$0}') if [[ -n ${ZSH_VERSION} ]]; then setopt NULL_GLOB fi for CDDEV in /dev/{cdroms/cdrom*,cdrom*,rcd*${raw},{a,}cd*c}; do [[ -e ${CDDEV} ]] && return 0 done return 1 } trackcount= while getopts 'd:t:' ch; do case ${ch} in d) CDDEV=${OPTARG} export CDDEV ;; t) trackcount=${OPTARG} ;; ?) echo 'fa-rip [-t track-count]' >&2 exit 2 ;; esac done shift $((${OPTIND} - 1)) if [[ -z ${CDDEV} ]]; then if ! get_cddev; then echo 'CDDEV environment variable not set, defaults did not work' >&2 exit 2 fi export CDDEV fi dir=$(mktemp -d flac-archive.XXXXXXXXXX) cd ${dir} if [[ -z ${trackcount} ]]; then mkcue ${CDDEV} > cue trackcount=$(grep -c 'TRACK.*AUDIO' cue) else mkcue -t ${trackcount} ${CDDEV} > cue fi fa-tags ${trackcount} exec cdparanoia -d ${CDDEV} 1-${trackcount} wav