mars/systemd-testing/mnt-test-@escvar{res}-testl...

71 lines
1.2 KiB
Bash

#!/bin/bash
# Markers for the template processor
# DEFAULT_START
# DEFAULT_STOP
#
# ALSO=mars-@escvar{res}-trigger.path
# ALSO=mars-@escvar{res}-trigger.service
op="$1"
# Ensure that pure trigger does not change anything.
mars_dev=/dev/mars/@{res}
mnt=/mnt/test/@{res}
case "$op" in
start)
# Assumption: start and vmstart seem to be idempotent already
if ! [[ -b $mars_dev ]]; then
echo "ignoring, $mars_dev is not present"
exit 0
fi
if mountpoint $mnt; then
echo "ignoring, $mnt is already mounted"
exit 0
fi
mkdir -p $mnt
mount $mars_dev $mnt
mountpoint $mnt
rc=$?
# cleanup any old flags
rm -f $mnt/*.flag
# start load
if (( !rc )); then
/etc/marsadm/systemd-templates/SYSTEMD-load-occupy.sh $mnt
fi
exit $rc
;;
stop)
if ! mountpoint $mnt; then
# Idempotence
exit 0
fi
/etc/marsadm/systemd-templates/SYSTEMD-load-stop.sh $mnt
# for additional safety
sleep 1
# umount, idempotent for increased robustness
if mountpoint $mnt; then
umount $mnt
fi
# status
if mountpoint $mnt; then
exit 1
fi
exit 0
;;
*)
# Ignore all other ops, like enable / disable / etc
echo "Ignore '$op'"
exit 0
esac
exit 0