From b0eb760572e1178d4db9e56aaba93872420d4233 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 15 Oct 2012 03:00:48 +0100 Subject: [PATCH] added udev rule and a control script --- door.sh | 36 +++++++++++++++++++++++++++++++ etc_udev_rules.d_92-yubikey.rules | 1 + 2 files changed, 37 insertions(+) create mode 100755 door.sh create mode 100644 etc_udev_rules.d_92-yubikey.rules diff --git a/door.sh b/door.sh new file mode 100755 index 0000000..d78b2e8 --- /dev/null +++ b/door.sh @@ -0,0 +1,36 @@ +#! /bin/sh + +cd /etc/door/ +export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + +OPEN_INDICATOR=/tmp/door_status_open +CLOSED_INDICATOR=/tmp/door_status_closed + +./door_verify.sh +STATUS=$? +if [ $STATUS -eq 0 ]; then + echo "opening door" + if [ -f $OPEN_INDICATOR ]; then + if [ $(( $(date +%s)-$(stat -c %X $OPEN_INDICATOR) )) -lt 15 ]; then + echo "please wait at least 15 seconds befor a second run of this script" >&2 + exit 1 + fi + echo "closing door" + ./door_lock.sh close + rm $OPEN_INDICATOR + touch $CLOSED_INDICATOR + else + if [ $(( $(date +%s)-$(stat -c %X $CLOSED_INDICATOR) )) -lt 15 ]; then + echo "please wait at least 15 seconds befor a second run of this script" >&2 + exit 1 + fi + echo "opening door" + ./door_lock.sh open + rm $CLOSED_INDICATOR + touch $OPEN_INDICATOR + fi + exit 0 +else + echo "the lock won't move" >&2 + exit 1 +fi diff --git a/etc_udev_rules.d_92-yubikey.rules b/etc_udev_rules.d_92-yubikey.rules new file mode 100644 index 0000000..812f95a --- /dev/null +++ b/etc_udev_rules.d_92-yubikey.rules @@ -0,0 +1 @@ +ACTION=="add", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0010", RUN+="/etc/door/door.sh"