[feature] add listing command
This commit is contained in:
parent
1a621c2877
commit
6f14fe2bec
32
bin/bm
32
bin/bm
|
@ -10,12 +10,16 @@ function _help
|
||||||
echo ' open [-c <category>]'
|
echo ' open [-c <category>]'
|
||||||
end
|
end
|
||||||
|
|
||||||
function _open
|
function list
|
||||||
|
argparse -n open c/category= -- $argv
|
||||||
|
_filter_category $_flag_category < $BOOKMARK_PATH | _filter_name $argv
|
||||||
|
end
|
||||||
|
|
||||||
|
function open
|
||||||
if test 0 -eq (count $argv)
|
if test 0 -eq (count $argv)
|
||||||
echo search mode
|
echo search mode
|
||||||
else
|
else
|
||||||
argparse -n open c/category= -- $argv
|
list $argv | _open_urls
|
||||||
_filter_category $_flag_category < $BOOKMARK_PATH | _open_urls $argv
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -46,22 +50,34 @@ function _filter_category -a category
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function _open_urls
|
function _filter_name
|
||||||
set -q BROWSER; or set BROWSER xdg-open
|
if not count $argv >/dev/null
|
||||||
|
cat -
|
||||||
|
return
|
||||||
|
end
|
||||||
while read LINE
|
while read LINE
|
||||||
if set link (string match -r '\[(.*?)\]\((.*?)\)' $LINE)
|
if set link (string match -r '\[(.*?)\]\((.*?)\)' $LINE)
|
||||||
if count $argv >/dev/null && not contains $link[2] $argv
|
if count $argv >/dev/null && not contains $link[2] $argv
|
||||||
continue
|
continue
|
||||||
end
|
end
|
||||||
$BROWSER $link[3]
|
echo $LINE
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function _open_urls
|
||||||
|
set -q BROWSER; or set BROWSER xdg-open
|
||||||
|
while read LINE
|
||||||
|
if set link (string match -r '\[(.*?)\]\((.*?)\)' $LINE)
|
||||||
|
$BROWSER $link[3] &
|
||||||
|
disown
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
switch $argv[1]
|
switch $argv[1]
|
||||||
case open
|
case open list
|
||||||
_open $argv[2..-1]
|
$argv[1..-1]
|
||||||
case '*'
|
case '*'
|
||||||
_help
|
_help
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue
Block a user