aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Spek <p.spek@tyil.nl>2022-05-11 11:11:29 +0200
committerPatrick Spek <p.spek@tyil.nl>2022-05-11 11:11:29 +0200
commitbc26254d36c8ae059555b6c0d0e8256174a84fb6 (patch)
tree01b829e0ec0ada811cfd7b4b5eb91dbb9e619f31
parentcc6fb709e0288099b923ad557ead9d925dff8b3d (diff)
Add functions.d back to the mix
-rw-r--r--.config/shell/functions.d/bwu29
-rw-r--r--.config/shell/sources10
2 files changed, 37 insertions, 2 deletions
diff --git a/.config/shell/functions.d/bwu b/.config/shell/functions.d/bwu
new file mode 100644
index 0000000..78c1378
--- /dev/null
+++ b/.config/shell/functions.d/bwu
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+bwu() {
+ bwu_sessionfile="/tmp/bw-session-$USER"
+
+ if [ ! -f "$bwu_sessionfile" ]
+ then
+ # Create session file with very strict permissions
+ bwu_sessiondir="$(dirname "$bwu_sessionfile")"
+
+ if [ ! -d "$bwu_sessiondir" ]
+ then
+ mkdir -p -- "$(dirname "$bwu_sessionfile")"
+ chmod -- 0700 "$(dirname "$bwu_sessionfile")"
+ fi
+
+ touch -- "$bwu_sessionfile"
+ chmod -- 0600 "$bwu_sessionfile"
+
+ # Actually get a session token
+ bw unlock --raw > "$bwu_sessionfile"
+ fi
+
+ BW_SESSION="$(cat "$bwu_sessionfile")"
+ export BW_SESSION
+
+ unset bwu_sessionfile
+ unset bwu_sessiondir
+}
diff --git a/.config/shell/sources b/.config/shell/sources
index b3f419c..a9b11b9 100644
--- a/.config/shell/sources
+++ b/.config/shell/sources
@@ -116,7 +116,13 @@ MANPATH="/home/tyil/.local/share/man/:$MANPATH"
. "$HOME/.config/shell/aliases"
# Add custom functions
-#. "$HOME/.config/shell/functions"
+[ "${DEBUG_DOTFILES}" ] && echo " Sourcing functions.d"
+
+for f in "$HOME/.config/shell/functions.d"/*
+do
+ [ "${DEBUG_DOTFILES}" ] && echo " $f"
+ . "$f"
+done
# Load profile
if [ -f "${HOME}/.config/shell/profile" ]
@@ -135,4 +141,4 @@ if [ -f "${HOME}/.config/shell/motd" ]; then
fi
# clear terminal
-#[ "$DEBUG_DOTFILES" ] || clear
+[ "$DEBUG_DOTFILES" ] || clear