code / bb

Lines2.7K C1.8K Shell331 YAML273 Markdown197 make44
(39 lines)
1 #!/bin/sh
2 # Pick from the provided input
3 if [ -z "$PICKER" ]; then
4 if command -v fzf >/dev/null; then
5 PICKER=fzf
6 elif command -v fzy >/dev/null; then
7 PICKER=fzy
8 elif command -v ask >/dev/null; then
9 PICKER=ask
10 elif command -v dmenu >/dev/null; then
11 PICKER=dmenu
12 elif command -v pick >/dev/null; then
13 PICKER=pick
14 fi
15 fi
17 case "$PICKER" in
18 fzf*)
19 printf '\033[3A\033[?25h' >/dev/tty
20 fzf --read0 --height=6 --prompt="$(printf "$1")"
21 ;;
22 fzy*)
23 printf '\033[3A\033[?25h' >/dev/tty
24 tr '\0' '\n' | fzy --lines=5 --prompt="$(printf "\033[1m$1\033[0m")"
25 ;;
26 ask*)
27 ask --read0 --prompt="$(printf "$1\033[?25h")"
28 ;;
29 dmenu*)
30 tr '\0' '\n' | dmenu -i -l 10 -p "$(printf "$1")"
31 ;;
32 pick*)
33 printf '\033[?25h' >/dev/tty
34 tr '\0' '\n' | pick
35 ;;
36 *)
37 query="$(bbask "$1")" && grep -i -m1 "$(echo "$query" | sed 's;.;[^/&]*[&];g')"
38 ;;
39 esac