make webdev script open file or uri in browser
This commit is contained in:
parent
531122d9b6
commit
8cee3dec34
1 changed files with 30 additions and 14 deletions
44
scripts/webdev
Normal file → Executable file
44
scripts/webdev
Normal file → Executable file
|
|
@ -10,6 +10,9 @@ DEFAULT_BROWSER=${DEFAULT_BROWSER:-}
|
|||
# WARNING: Internal use only (do not modify!)
|
||||
# === Internal Environment === #
|
||||
QUIET=false
|
||||
BROWSER=""
|
||||
LOC=""
|
||||
LOC_TYPE="" # file or uri
|
||||
# ============================ #
|
||||
|
||||
# Quiet Echo - doesn't echo if QUIET is set
|
||||
|
|
@ -20,33 +23,41 @@ qecho() {
|
|||
}
|
||||
|
||||
# Argument Parsing
|
||||
for OPT in $@; do
|
||||
case $OPT in
|
||||
for ARG in $@; do
|
||||
case $ARG in
|
||||
-q|--quiet)
|
||||
QUIET=true
|
||||
;;
|
||||
-*)
|
||||
echo -e "[!] Unknown option \"$OPT\"\n$USAGE" >2
|
||||
echo -e "[!] Unknown option \"$ARG\"\n$USAGE" >2
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
echo "[!] Unknown option \"$OPT\"\n$USAGE" >2
|
||||
exit 1
|
||||
# first unknown (non-option) argument assumed $LOC
|
||||
if [[ -n "$LOC" ]]; then
|
||||
LOC="$OPT"
|
||||
else
|
||||
echo "[!] Unknown option \"$ARG\"\n$USAGE" >2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
done
|
||||
# ensure $LOC was set during argparse phase
|
||||
if [[ -z "$LOC" ]]; then
|
||||
echo -e "[!] URI or file not specified\n$USAGE" >2
|
||||
fi
|
||||
|
||||
# Use DEFAULT_BROWSER or check XDG default-web-browser or fail
|
||||
BROWSER=""
|
||||
if [ -n "$DEFAULT_BROWSER" ]; then
|
||||
echo "[+] Browser manually set to $DEFAULT_BROWSER"
|
||||
echo " > Skipped checking XDG default-web-browser"
|
||||
if [[ -n "$DEFAULT_BROWSER" ]]; then
|
||||
qecho "[+] Browser manually set to $DEFAULT_BROWSER"
|
||||
qecho " > Skipped checking XDG default-web-browser"
|
||||
else
|
||||
echo "[*] Lookup XDG default-web-browser"
|
||||
qecho "[*] Lookup XDG default-web-browser"
|
||||
BROWSER=$(xdg-settings get default-web-browser 2>/dev/null)
|
||||
if [ $? -eq 0 ]; then
|
||||
if [[ $? -eq 0 ]]; then
|
||||
BROWSER=${BROWSER%%.desktop}
|
||||
echo "[+] Browser automatically set to $BROWSER"
|
||||
qecho "[+] Browser automatically set to $BROWSER"
|
||||
else
|
||||
echo "[!] Unknown browser girlypop :(" >2
|
||||
echo " > Either:" >2
|
||||
|
|
@ -57,5 +68,10 @@ else
|
|||
fi
|
||||
echo # linebreak
|
||||
|
||||
|
||||
|
||||
# Check if $LOC is a valid path
|
||||
REALPATH=$(realpath "$LOC" 2>/dev/null)
|
||||
if [ -f "$REALPATH"]; then
|
||||
LOC="file://$LOC" # open file directly via "file" protocol
|
||||
fi
|
||||
# Substitutions left intentionally unquoted (allows for providing args)
|
||||
command $BROWSER $LOC
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue