aboutsummaryrefslogtreecommitdiffstats
path: root/fzf-url.sh
diff options
context:
space:
mode:
authorWenxuan Zhang <wenxuangm@gmail.com>2020-09-05 12:37:59 +0800
committerWenxuan Zhang <wenxuangm@gmail.com>2020-09-05 12:40:58 +0800
commit64da84f1664494681348785f125ce400af4f593a (patch)
tree31ccdde5885c314ad52504468578664bb2d94c56 /fzf-url.sh
parent74d4f13c98cec03e4243adf719275ad880dabde0 (diff)
downloadfork-tmux-fzf-url-64da84f1664494681348785f125ce400af4f593a.tar.gz
fork-tmux-fzf-url-64da84f1664494681348785f125ce400af4f593a.tar.bz2
fork-tmux-fzf-url-64da84f1664494681348785f125ce400af4f593a.zip
feat: support custom filter #7
Diffstat (limited to 'fzf-url.sh')
-rwxr-xr-xfzf-url.sh10
1 files changed, 7 insertions, 3 deletions
diff --git a/fzf-url.sh b/fzf-url.sh
index 09be041..70b2d39 100755
--- a/fzf-url.sh
+++ b/fzf-url.sh
@@ -9,7 +9,7 @@ fzf_cmd() {
fzf-tmux -d 35% --multi --exit-0 --cycle --reverse --bind='ctrl-r:toggle-all' --bind='ctrl-s:toggle-sort' --no-preview
}
-if hash xdg-open &>/dev/null; then
+if hash xdg-open &>/dev/null; then
open_cmd='nohup xdg-open'
elif hash open &>/dev/null; then
open_cmd='open'
@@ -23,16 +23,20 @@ wwws=($(echo "$content" |grep -oE 'www\.[a-zA-Z](-?[a-zA-Z0-9])+\.[a-zA-Z]{2,}(/
ips=($(echo "$content" |grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}(:[0-9]{1,5})?(/\S+)*' |sed 's/^\(.*\)$/http:\/\/\1/'))
gits=($(echo "$content" |grep -oE '(ssh://)?git@\S*' | sed 's/:/\//g' | sed 's/^\(ssh\/\/\/\)\{0,1\}git@\(.*\)$/https:\/\/\2/'))
+if [[ $# -ge 1 && "$1" != '' ]]; then
+ extras=($(echo "$content" |eval "$1"))
+fi
+
merge() {
for item in "$@" ; do
echo "$item"
done
}
-merge "${urls[@]}" "${wwws[@]}" "${ips[@]}" "${gits[@]}"|
+merge "${urls[@]}" "${wwws[@]}" "${ips[@]}" "${gits[@]}" "${extras[@]}"|
sort -u |
nl -w3 -s ' ' |
fzf_cmd |
awk '{print $2}'|
- xargs -n1 -I {} $open_cmd {} &>/dev/null ||
+ xargs -n1 -I {} "$open_cmd" {} &>/dev/null ||
true