summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2023-03-22 18:04:21 +0100
committertv <tv@krebsco.de>2023-03-22 18:04:21 +0100
commit782c8652366c173626c2f1ddd40eb1b220bd97d6 (patch)
treec8a671f1a4b0fd8b04d28c572222b229f8afbb9a
parentd873abf0a92c709ec9f79b49fa5d2e5bd244f0ad (diff)
tv fzmenu: admit symlinks
-rwxr-xr-xtv/5pkgs/simple/fzmenu/bin/otpmenu11
-rwxr-xr-xtv/5pkgs/simple/fzmenu/bin/passmenu12
-rw-r--r--tv/5pkgs/simple/fzmenu/default.nix6
3 files changed, 19 insertions, 10 deletions
diff --git a/tv/5pkgs/simple/fzmenu/bin/otpmenu b/tv/5pkgs/simple/fzmenu/bin/otpmenu
index 12bd60a9d..273a408e6 100755
--- a/tv/5pkgs/simple/fzmenu/bin/otpmenu
+++ b/tv/5pkgs/simple/fzmenu/bin/otpmenu
@@ -10,14 +10,17 @@ case ${FZMENU_PHASE-0} in
;;
1)
if result=$(
+ PASSWORD_STORE_DIR=${PASSWORD_STORE_DIR-$HOME/.password-store}
FZF_DEFAULT_OPTS=${FZMENU_FZF_DEFAULT_OPTS-}
if test -n "$FZF_DEFAULT_OPTS"; then
export FZF_DEFAULT_OPTS
fi
- pass git ls-files '*/otp.gpg' | \
- sed '
-
- s/\/otp\.gpg$//
+ find -L "$PASSWORD_STORE_DIR" -type f -name 'otp.gpg' |
+ awk -F / -v PASSWORD_STORE_DIR="$PASSWORD_STORE_DIR" '
+ { n = length(PASSWORD_STORE_DIR "/") }
+ $NF == "otp.gpg" {
+ print substr($0, 1 + n, length($0)-length("/otp.gpg")-n)
+ }
' |
exec fzf \
--history=/dev/null \
diff --git a/tv/5pkgs/simple/fzmenu/bin/passmenu b/tv/5pkgs/simple/fzmenu/bin/passmenu
index da8e739ee..76153f53e 100755
--- a/tv/5pkgs/simple/fzmenu/bin/passmenu
+++ b/tv/5pkgs/simple/fzmenu/bin/passmenu
@@ -10,14 +10,18 @@ case ${FZMENU_PHASE-0} in
;;
1)
if result=$(
+ PASSWORD_STORE_DIR=${PASSWORD_STORE_DIR-$HOME/.password-store}
FZF_DEFAULT_OPTS=${FZMENU_FZF_DEFAULT_OPTS-}
if test -n "$FZF_DEFAULT_OPTS"; then
export FZF_DEFAULT_OPTS
fi
- pass git ls-files '*/*.gpg' | \
- sed '
- /\/otp\.gpg$:/d
- s/\.gpg$//
+ find -L "$PASSWORD_STORE_DIR" -type f -name '*.gpg' |
+ awk -F / -v PASSWORD_STORE_DIR="$PASSWORD_STORE_DIR" '
+ { n = length(PASSWORD_STORE_DIR "/") }
+ $NF == "otp.gpg" { next }
+ /.*\.gpg$/ {
+ print substr($0, 1 + n, length($0)-length(".gpg")-n)
+ }
' |
exec fzf \
--history=/dev/null \
diff --git a/tv/5pkgs/simple/fzmenu/default.nix b/tv/5pkgs/simple/fzmenu/default.nix
index 7e19505c1..1a285ee99 100644
--- a/tv/5pkgs/simple/fzmenu/default.nix
+++ b/tv/5pkgs/simple/fzmenu/default.nix
@@ -21,8 +21,9 @@ pkgs.runCommand "fzmenu" {
--replace '#PATH=' PATH=${lib.makeBinPath [
pkgs.coreutils
pkgs.dash
+ pkgs.findutils
pkgs.fzf
- pkgs.gnused
+ pkgs.gawk
(pkgs.pass.withExtensions (ext: [
ext.pass-otp
]))
@@ -36,8 +37,9 @@ pkgs.runCommand "fzmenu" {
--replace '#PATH=' PATH=${lib.makeBinPath [
pkgs.coreutils
pkgs.dash
+ pkgs.findutils
pkgs.fzf
- pkgs.gnused
+ pkgs.gawk
(pkgs.pass.withExtensions (ext: [
ext.pass-otp
]))