From 9020ae67c81e1f9605df74d3a74e4084c8e5a794 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kier=C3=A1n=20Meinhardt?= Date: Wed, 15 Apr 2020 14:58:23 +0200 Subject: [PATCH] fix(fzfmenu): include bash and handle options --- packages/scripts/default.nix | 2 +- packages/scripts/fzfmenu.sh | 24 +++++++++++++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/packages/scripts/default.nix b/packages/scripts/default.nix index d7fd7f7..b30fa99 100644 --- a/packages/scripts/default.nix +++ b/packages/scripts/default.nix @@ -111,7 +111,7 @@ in fzfmenu = wrapScript { script = ./fzfmenu.sh; name = "fzfmenu"; - packages = [ pkgs.st pkgs.fzf pkgs.dash ]; + packages = [ pkgs.st pkgs.fzf pkgs.dash pkgs.bash ]; }; bvg = pkgs.callPackage ./bvg.nix {}; diff --git a/packages/scripts/fzfmenu.sh b/packages/scripts/fzfmenu.sh index 093fedf..36ba08c 100755 --- a/packages/scripts/fzfmenu.sh +++ b/packages/scripts/fzfmenu.sh @@ -9,10 +9,32 @@ mkfifo "$input" mkfifo "$output" chmod 600 "$input" "$output" +for i in "$@"; do + case $i in + -p) + PROMPT="$2" + shift + shift + break ;; + -l) + # no reason to filter number of lines + shift + shift + break ;; + -i) + # we do this anyway + shift + break ;; + *) + echo "Unknown option $1" >&2 + shift ;; + esac +done + # it's better to use st here (starts a lot faster than pretty much everything else) st -c fzfmenu -n fzfmenu -g 85x10 \ -e dash \ - -c "cat $input | fzf --print-query $* | tee $output" & disown + -c "cat $input | fzf --reverse --prompt='${PROMPT+> }' --print-query $* | tee $output" & disown # handle ctrl+c outside child terminal window trap 'kill $! 2>/dev/null; rm -f $input $output' EXIT