rip-music-cd
#424
- Author
- winny
- Created
- Feb. 7, 2022, 4:30 a.m.
- Expires
- Never
- Size
- 865 bytes
- Hits
- 174
- Syntax
- Bash
- Private
- ✗ No
#!/usr/bin/env bash
# Trigger this via udev. Put the following line in /etc/udev/rules.d/90-ripper.rules .
# SUBSYSTEM=="block", KERNEL=="sr*", ACTION=="change", RUN+="/usr/local/sbin/rip-music-cd"
set -eu -o pipefail
if [[ -f /root/dont-rip ]]; then
msg='/root/dont-rip exists, exiting.'
echo $msg
sudo -u winston -i sh -c 'cat >> ~/ripper.log' <<<$msg
exit 1
fi
sleep 5
# https://superuser.com/a/1367091/302931
python - <<EOF
"""detect_tray reads status of the CDROM_DRIVE.
Statuses:
1 = no disk in tray
2 = tray open
3 = reading tray
4 = disk in tray
"""
import fcntl
import os
import sys
CDROM_DRIVE = '/dev/sr0'
fd = os.open(CDROM_DRIVE, os.O_RDONLY | os.O_NONBLOCK)
rv = fcntl.ioctl(fd, 0x5326)
os.close(fd)
sys.exit(rv != 4)
EOF
sudo -u winston -i bash -c 'env INTERACTIVE=no abcde -B -G -x -d /dev/sr0 &>> ~/ripper.log'