From ac015d36e4ec4dafe9a0f481ed0fb8c6d6ee3f84 Mon Sep 17 00:00:00 2001 From: Nathan Reiner Date: Mon, 27 Mar 2023 21:28:17 +0200 Subject: create keyusb --- Makefile | 7 +++++++ config.mk | 1 + keyusbctl | 20 ++++++++++++++++++++ usb-unplug.rules | 1 + 4 files changed, 29 insertions(+) create mode 100644 Makefile create mode 100644 config.mk create mode 100644 keyusbctl create mode 100644 usb-unplug.rules 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" -- cgit v1.2.3-70-g09d2