diff options
author | Nathan Reiner <nathan@nathanreiner.xyz> | 2023-03-27 21:28:17 +0200 |
---|---|---|
committer | Nathan Reiner <nathan@nathanreiner.xyz> | 2023-03-27 21:28:17 +0200 |
commit | ac015d36e4ec4dafe9a0f481ed0fb8c6d6ee3f84 (patch) | |
tree | 9ec04ab7e32975fbd9812c08ec505af890133a2b |
create keyusb
-rw-r--r-- | Makefile | 7 | ||||
-rw-r--r-- | config.mk | 1 | ||||
-rw-r--r-- | keyusbctl | 20 | ||||
-rw-r--r-- | usb-unplug.rules | 1 |
4 files changed, 29 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..e701613 --- /dev/null +++ b/Makefile @@ -0,0 +1,7 @@ +include config.mk + +install: + sed ./keyusbctl -e "s/\[USB_UUID\]/${USB_UUID}/g" > /usr/local/sbin/keyusbctl + cp ./usb-unplug.rules /etc/udev/rules.d/ + chmod +x /usr/local/sbin/keyusbctl + @echo type 'udevadm control --reload' to reload the udev rules diff --git a/config.mk b/config.mk new file mode 100644 index 0000000..8387d6d --- /dev/null +++ b/config.mk @@ -0,0 +1 @@ +USB_UUID=YOUR_UUID_HERE diff --git a/keyusbctl b/keyusbctl new file mode 100644 index 0000000..1798000 --- /dev/null +++ b/keyusbctl @@ -0,0 +1,20 @@ +#!/bin/sh + +is_key_plugged_in() { + lsblk --raw -o UUID | grep [USB_UUID] +} + +toggle_lock() { + if [ -e "/tmp/.keyusb_lock" ]; then + rm /tmp/.keyusb_lock + else + touch /tmp/.keyusb_lock + fi +} + +case "$1" in + -e) + [ -e "/tmp/.keyusb_lock" ] && exit + is_key_plugged_in || poweroff;; + -t) toggle_lock;; +esac diff --git a/usb-unplug.rules b/usb-unplug.rules new file mode 100644 index 0000000..ab4759f --- /dev/null +++ b/usb-unplug.rules @@ -0,0 +1 @@ +ACTION=="remove", SUBSYSTEM=="usb", RUN+="/usr/local/sbin/keyusbctl -e" |