(WIP) merge in upstream
This commit is contained in:
parent
ffcf3ad4b0
commit
2fce1e39ef
@ -1,66 +1,69 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
INPUT=$(echo $1)
|
argv0="$0"
|
||||||
echo "Loading configuration..."
|
argv1="$1"
|
||||||
CONFIG=$(cat /etc/xdg-sanity/xdg-sanity.conf)
|
|
||||||
BROWSER=$(echo $CONFIG | sed -ne 's/^browser *= *//p')
|
|
||||||
|
|
||||||
if [ "$BROWSER" = "" ]
|
# cats out the configuration or {'\n', EOF} if it can't be found
|
||||||
then
|
stream_config(){
|
||||||
echo "Please place the path to your default browser's executable in /etc/xdg-sanity/xdg-sanity.conf"
|
cat "$HOME"/.xdg-sanity.conf 2>/dev/null \
|
||||||
exit
|
|| cat "$HOME"/.config/xdg-sanity.conf 2>/dev/null \
|
||||||
else
|
|| cat /etc/xdg-sanity/xdg-sanity.conf 2>/dev/null \
|
||||||
echo "Found default browser $BROWSER"
|
|| echo # empty line
|
||||||
|
}
|
||||||
|
|
||||||
|
# check if usage is valid
|
||||||
|
if ! test -n "$1"; then
|
||||||
|
printf "Usage: %s [resource...]\n" "$argv0"
|
||||||
|
exit 64 # sysexits(3) EX_USAGE
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Loading extensions..."
|
# check if we have curl(1)
|
||||||
for EXT in /etc/xdg-sanity/extensions/*.sh
|
if ! command -v curl >/dev/null 2>&1; then
|
||||||
do
|
printf "%s: Missing dependency: curl(1)\n" "$argv0"
|
||||||
|
exit 71 # sysexits(3) EX_OSERR
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$EXT" = "/etc/xdg-sanity/extensions/*.sh" ]
|
test -n "$BROWSER" || BROWSER="$(stream_config | sed -ne 's/^browser *= *//p')"
|
||||||
then
|
|
||||||
|
# check if we have a $BROWSER
|
||||||
|
if ! test -n "$BROWSER"; then
|
||||||
|
printf "\
|
||||||
|
%s: \$BROWSER not filled.
|
||||||
|
Please place the path to your default browser's executable in
|
||||||
|
/etc/xdg-sanity/xdg-sanity.conf
|
||||||
|
" "$0"
|
||||||
|
exit 71 # sysexits(3) EX_OSERR
|
||||||
|
fi
|
||||||
|
|
||||||
|
MIME="$(curl -s -o /dev/null -w '%{content_type}' $1 | sed 's/\;.*//' | xargs echo)"
|
||||||
|
# RESPONSE_CODE=$(curl -fLIs "$INPUT" | sed -ne 's/ [[:space:]]*$//p' | sed -ne 's|^HTTP/.\+ ||p')
|
||||||
|
|
||||||
|
for EXT in /etc/xdg-sanity/extensions/*.sh; do
|
||||||
|
if [ "$EXT" = "/etc/xdg-sanity/extensions/*.sh" ]; then
|
||||||
echo "No extensions to load"
|
echo "No extensions to load"
|
||||||
else
|
else
|
||||||
|
for EXT in /etc/xdg-sanity/extensions/*.sh; do
|
||||||
for EXT in /etc/xdg-sanity/extensions/*.sh
|
|
||||||
do
|
|
||||||
TYPE=$(cat $EXT | sed -ne 's/^# EXT-TYPE=//p' | tr -d '\n')
|
TYPE=$(cat $EXT | sed -ne 's/^# EXT-TYPE=//p' | tr -d '\n')
|
||||||
echo "Found $TYPE extension $EXT"
|
echo "Found $TYPE extension $EXT"
|
||||||
|
|
||||||
if [ "$TYPE" = "replace" ]
|
if [ "$TYPE" = "replace" ]; then
|
||||||
then
|
|
||||||
echo "Modifying $INPUT..."
|
echo "Modifying $INPUT..."
|
||||||
INPUT=$($EXT "$INPUT")
|
argv1=$($EXT "$argv1")
|
||||||
echo "Got $INPUT"
|
echo "Got $INPUT"
|
||||||
|
elif [ "$TYPE" = "mime" ]; then
|
||||||
else
|
|
||||||
if [ "$TYPE" = "mime" ]
|
|
||||||
then
|
|
||||||
echo "Modifying MIME type..."
|
echo "Modifying MIME type..."
|
||||||
MIME=$($EXT "$INPUT")
|
MIME="$($EXT "$argv1")"
|
||||||
echo "Got $MIME"
|
echo "Got $MIME"
|
||||||
|
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ "$MIME" = "" ] || [ "$MIME" = "$1" ] || [ "$MIME" = "$INPUT" ]
|
# determine the MIME type, strip everything after the first semicolon, and
|
||||||
then
|
# check to see if it's HTML
|
||||||
echo "Determining MIME type of $INPUT:"
|
if [ "$MIME"= "text/html" ]; then
|
||||||
# Determines HTTP code, might use for something else?
|
$BROWSER "$1"
|
||||||
# CODE=$(curl -fLIs "$INPUT" | sed -ne 's/ [[:space:]]*$//p' | sed -ne 's|^HTTP/.\+ ||p')
|
|
||||||
MIME=$(curl -fLIs "$INPUT" | sed -ne 's/^[cC]ontent-[tT]ype: //p' | sed -e 's/;.\+//p' | tail -n1 | tr -d '\r')
|
|
||||||
echo $MIME
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$MIME" = "text/html" ]
|
|
||||||
then
|
|
||||||
$BROWSER $INPUT
|
|
||||||
|
|
||||||
else
|
else
|
||||||
handlr launch "$MIME" -- "$INPUT"
|
handlr launch "$MIME" -- "$1"
|
||||||
fi
|
fi
|
Loading…
Reference in New Issue
Block a user