#!/sbin/openrc-run # Copyright 1999-2018 Gentoo Foundation # Distributed under the terms of the GNU General Public License, v2 command="/usr/sbin/pktsetup" devdir="/dev/pktcdvd" depend() { need localmount modules } checkconfig() { if ! [ -e "${devdir}/control" ] ; then eerror "Could not find packet-writing control device at /dev/pktcdvd/control" eerror "Please ensure that your kernel includes packet writing support," eerror "and if modular, ensure that the module is loaded." return 1 fi } get_rw_devices() { local sys_file="/proc/sys/dev/cdrom/info" devices_raw=$(sed -re '/^drive name:/I!d; s/.*:\s+//' ${sys_file}) count=0 for i in ${devices_raw} ; do eval "devices_$count=\"\$i\"" count=$(( $count + 1 )) done devs="" cdrw_caps=$(sed -re '/^Can write CD-RW:/I!d; s/.*:\s+//' ${sys_file}) count=0 for i in ${cdrw_caps} ; do [ "$i" -eq 1 ] && eval "devs=\"\$devs \$devices_$count\"" count=$(( ${count} + 1 )) done echo ${devs} } start() { checkconfig || return 1 for i in $(get_rw_devices) do devnode="/dev/${i}" [ -e "${devnode}" ] || continue ${command} "${i}" "${devnode}" > /dev/null [ -e "${devdir}/${i}" ] || continue chmod 660 "${devdir}/${i}" chgrp cdrw "${devdir}/${i}" done } stop() { checkconfig || return 1 for i in $(get_rw_devices) do ${command} -d "${i}" > /dev/null done }