Skip to content

Instantly share code, notes, and snippets.

@boronology
Last active May 2, 2019 04:19
Show Gist options
  • Select an option

  • Save boronology/5984230 to your computer and use it in GitHub Desktop.

Select an option

Save boronology/5984230 to your computer and use it in GitHub Desktop.
CDリッピングしてFLACにするやつ(改)。大幅に加筆して他人も使えるようにした。あとPOSIX準拠を心掛けた。
#!/bin/sh
DEVICE=/dev/sr0
OUTPUTBASE=disc
READSPEED=8
OFFSET=0
command_exist(){
if ! type $1 >/dev/null 2>&1; then
echo "$1が存在しません"
exit 1
fi
}
# 必要なコマンドのチェック
# 意地でもPOSIX準拠にしてやる……
command_exist "cdparanoia"
command_exist "mkcue"
command_exist "flac"
command_exist "sed"
command_exist "eject"
# DEVICEが存在するかチェック
if [ ! -e ${DEVICE} ]; then
echo "${DEVICE}が存在しません"
exit 1
fi
# CDが該当ドライブに入っているかどうか
if ! mkcue ${DEVICE} >/dev/null 2>&1
then
echo "${DEVICE}にCDが入っていません"
exit 1
fi
# 引数=ディスク名はフォルダ名に使用
if [ $# -ne 0 ]; then
DISCNAME=$1
else
DISCNAME=NO_TITLE
fi
# フォルダが存在するか
if [ -d ${DISCNAME} ]; then
echo "すでに同名のフォルダが存在します"
echo "上書きしますか?(Y/N)"
while read ANS; do
case ${ANS} in
'Y' )
break ;;
'y' )
break ;;
'N' )
echo "終了します"
exit 1 ;;
'n' )
echo "終了します"
exit 1 ;;
* )
echo "Y/Nで答えてください" ;;
esac
done
else
mkdir ${DISCNAME}
fi
# 作業ディレクトリに移動
cd ${DISCNAME}
# CUE-SHEETの作成
mkcue ${DEVICE} > ${OUTPUTBASE}.cue
# リッピング
cdparanoia 1- \
-w \
-O ${OFFSET} \
-d ${DEVICE} \
--never-skip=20 \
${OUTPUTBASE}.wav
# eject
eject ${DEVICE}
# CUE SHEETの編集
sed -i -e "s/dummy.wav/${OUTPUTBASE}.flac/" ${OUTPUTBASE}.cue
# FLACつくる
flac -V -8 \
--cuesheet=${OUTPUTBASE}.cue \
--delete-input-file \
${OUTPUTBASE}.wav
# 終了
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment