You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.1 KiB
Bash
48 lines
1.1 KiB
Bash
#!/bin/sh
|
|
#
|
|
|
|
FD="/dev/sda"
|
|
FLOPPY="/media/floppy"
|
|
MAINPY="${FLOPPY}/main.py"
|
|
PYRUN="python ${MAINPY}"
|
|
MAINPD="${FLOPPY}/main.pd"
|
|
PDRUN="pd -lib import -path /usr/local/lib/pd-externals/net/ -path /usr/local/lib/pd-externals/osc/ -lib osc -lib udpreceive -oss -r 48000 -rt -nogui ${MAINPD}"
|
|
|
|
stdbuf -oL -- udevadm monitor --udev -p ${FD} | while read -r -- STATE _ _ _ _
|
|
do
|
|
if [ "${STATE}" = "DISK_MEDIA_CHANGE=1" ]
|
|
then
|
|
echo "change detected"
|
|
if [ "$(udisksctl info -b ${FD} | grep filesystem)" ]
|
|
then
|
|
echo "floppy in (fs detected)"
|
|
udisksctl mount -b ${FD} --no-user-interaction
|
|
if [ -e "${MAINPY}" ]
|
|
then
|
|
echo "main.py found"
|
|
$(${PYRUN})&
|
|
fi
|
|
if [ -e "${MAINPD}" ]
|
|
then
|
|
echo "main.pd found"
|
|
$(${PDRUN})&
|
|
fi
|
|
else
|
|
echo "floppy out (no fs detected)"
|
|
if [ "$(pgrep -f '^python')" ]
|
|
then
|
|
echo "python still running ... killing"
|
|
pkill -9 python
|
|
fi
|
|
if [ "$(pgrep -f '^pd')" ]
|
|
then
|
|
echo "pd still running ... killing"
|
|
pkill -9 pd
|
|
fi
|
|
|
|
fi
|
|
fi
|
|
done
|
|
|
|
|