summaryrefslogtreecommitdiffstats
path: root/tv/5pkgs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2019-02-05 11:53:31 +0100
committerlassulus <lassulus@lassul.us>2019-02-08 05:19:48 +0100
commit710238039b5d326b57cdd1ca3a2606f322cc54a6 (patch)
treefbac11ce52f385fc5ea3f416384612a98d22c6f3 /tv/5pkgs
parent483c26af7cb8ae71fc65704a2062ec2ca618a1ac (diff)
tv bash-fzf-history: use array instead of extglob
Diffstat (limited to 'tv/5pkgs')
-rw-r--r--tv/5pkgs/simple/bash-fzf-history.nix22
1 files changed, 13 insertions, 9 deletions
diff --git a/tv/5pkgs/simple/bash-fzf-history.nix b/tv/5pkgs/simple/bash-fzf-history.nix
index e9a21b9..8b3fe9e 100644
--- a/tv/5pkgs/simple/bash-fzf-history.nix
+++ b/tv/5pkgs/simple/bash-fzf-history.nix
@@ -33,7 +33,8 @@ with import <stockholm/lib>;
]}'
__fzf_history__() (
- result=$(
+ IFS=$'\n'
+ result=( $(
HISTTIMEFORMAT= history |
FZF_DEFAULT_OPTS="${toString [
/* sh */ "--tac"
@@ -45,15 +46,18 @@ with import <stockholm/lib>;
/* sh */ "$FZF_DEFAULT_OPTS"
/* sh */ "+m"
]}" \
- ${pkgs.fzf}/bin/fzf
- )
+ ${pkgs.fzf}/bin/fzf |
+ ${pkgs.gnused}/bin/sed '
+ /^ *[0-9]/{
+ s/^ *//
+ s/ \+/\n/;# index
+ }
+ '
+ ) )
if test -n "$result"; then
- shopt -s extglob
-
- key=''${result%%$'\n'*}
- line=''${result##*([^0-9])}
- index=''${line%%[^0-9]*}
- command=''${line##*([0-9 ])}
+ key=''${result[0]}
+ index=''${result[1]}
+ command=''${result[2]}
echo "$command${mark-prefix}$key"
else