Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathst-urlhandler
More file actions
Latest commit
executable file
·19 lines (15 loc) · 925 Bytes
/
Copy pathst-urlhandler
File metadata and controls
executable file
·19 lines (15 loc) · 925 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/sh
urlregex="(((http|https|gopher|gemini|ftp|ftps|git)://|www\\.)[a-zA-Z0-9.]*[:]?[a-zA-Z0-9./@$&%?$\#=_~-]*)|((magnet:\\?xt=urn:btih:)[a-zA-Z0-9]*)"
urls="$(sed 's/.*│//g'| tr -d '\n'|# First remove linebreaks and mutt sidebars:
grep -aEo "$urlregex"|# grep only urls as defined above.
uniq |# Ignore neighboring duplicates.
sed "s/\(\.\|,\|;\|\!\\|\?\)$//;
s/^www./http:\/\/www\./")"# xdg-open will not detect url without http
[ -z"$urls" ] &&exit 1
whilegetopts"hoc" o;docase"${o}"in
h) printf"Optional arguments for custom use:\\n -c: copy\\n -o: xdg-open\\n -h: Show this message\\n"&&exit 1 ;;
o) chosen="$(echo "$urls"| dmenu -i -p 'Follow which url?' -l 10)"
setsid xdg-open "$chosen">/dev/null 2>&1& ;;
c) echo"$urls"| dmenu -i -p 'Copy which url?' -l 10 | tr -d '\n'| xclip -selection clipboard ;;
*) printf"Invalid option: -%s\\n""$OPTARG"&&exit 1 ;;
esacdone