-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbo
39 lines (33 loc) · 902 Bytes
/
bo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# @desc: use fzf to open bookmark with buku
# @tags: fzf buku
local db sql url
local -a urls
function __bg() {
nohup "${(z)@}" &>/dev/null &!
}
db="$XDG_DATA_HOME/buku/bookmarks.db"
sql="SELECT id,URL,metadata,tags FROM bookmarks"
urls=($(
sqlite3 -separator $'\t' "$db" "$sql" \
| perl -F'\t' -lne 'BEGIN{$,="\t"} $F[3] =~ s/(^,|,$)//g; print @F' \
| fzf \
${${(z)${(j. .)BUKU_FZF_OPTS}}//\'} \
--multi \
--reverse \
--query "${*:-}" \
--delimiter '\t' \
--bind='ctrl-e:execute(buku -w {1} < /dev/tty > /dev/tty)' \
--preview "buku --nostdin -p {1}" \
--preview-window=wrap \
| ${commands[hck]:-cut} -f2
))
if (( $+BUKU_NO_BG )) {
for url ($urls[@]) {
$BROWSER $url
}
} else {
for url ($urls[@]) {
__bg "handlr open $url"
}
}
# vim: ft=zsh:et:sw=0:ts=2:sts=2:fdm=marker:fmr=[[[,]]]: