summaryrefslogtreecommitdiff
path: root/bin/guiscripts/keyadd
diff options
context:
space:
mode:
authorRaymaekers Luca <raymaekers.luca@gmail.com>2023-06-18 23:05:23 +0200
committerRaymaekers Luca <raymaekers.luca@gmail.com>2023-06-18 23:05:23 +0200
commit11ee207cc10e72aa96fad4715b14a84c686ad480 (patch)
treebc98d60bb59ab0fdc183c6673fe8fe143fd367bc /bin/guiscripts/keyadd
parent305c8e8ff1fc4a76fb42151105e119e8266df57c (diff)
parent8c5d85923a970bd60657848e1c2c6f627c4329d9 (diff)
Merge branch 'main' of db:dotfiles
Diffstat (limited to 'bin/guiscripts/keyadd')
-rwxr-xr-xbin/guiscripts/keyadd52
1 files changed, 52 insertions, 0 deletions
diff --git a/bin/guiscripts/keyadd b/bin/guiscripts/keyadd
new file mode 100755
index 0000000..b5bc4d9
--- /dev/null
+++ b/bin/guiscripts/keyadd
@@ -0,0 +1,52 @@
+#!/bin/sh
+
+# For when script calls itself
+if [ -n "$PASSWORD" ]
+then
+ pass show "$PASSWORD" &&
+ exit
+ exit 1
+fi
+
+
+if [ "$MENUCMD" = "tofi" ]
+then
+ menucmd="tofi --matching-algorithm=normal"
+else
+ menucmd="$MENUCMD"
+fi
+
+
+die ()
+{
+ echo "$1" >&2
+}
+
+SSHFOLDER="$HOME/.ssh"
+
+key="$(find "$SSHFOLDER" -iname "*.pub" |
+ sed "s,$SSHFOLDER/,," | # Clean
+ sed 's/\.pub$//' |
+ $menucmd)"
+die "key: $key"
+
+test ! -f "$SSHFOLDER/$key" && exit 1
+
+HOST=$(hostnamectl hostname | sed 's/forlure/fl/;s/montecristo/mc/')
+die "HOST: $HOST"
+
+if [ "$1" = "-d" ]
+then
+ ssh-add -d - < "$SSHFOLDER"/$key.pub &&
+ notify-send "$0" "deleted <b>$key</b>" ||
+ notify-send "$0" "could not delete."
+elif ! ssh-add -l | grep -q "$(ssh-keygen -lf "$SSHFOLDER"/$key)"
+then
+ export PASSWORD="keys/$HOST/ssh/$key"
+ export SSH_ASKPASS="$0"
+ ssh-add - < "$SSHFOLDER"/$key &&
+ notify-send "$0" "added <b>$key</b>"
+else
+ die "key already added."
+ notify-send "$0" "key already added."
+fi