Compare commits
9 Commits
27e7153b71
...
2fce1e39ef
Author | SHA1 | Date |
---|---|---|
dtb | 2fce1e39ef | |
Emma Tebibyte | ffcf3ad4b0 | |
Emma Tebibyte | 1f912360e7 | |
Emma Tebibyte | fecb5e103e | |
Emma Tebibyte | 9a1c33d0d1 | |
Emma Tebibyte | 8c9b55bb96 | |
Emma Tebibyte | bc18380fec | |
Emma Tebibyte | bce239da30 | |
Emma Tebibyte | 2cfd97c158 |
|
@ -1,25 +1,69 @@
|
|||
#!/bin/sh
|
||||
|
||||
argv0="$0"
|
||||
argv1="$1"
|
||||
|
||||
# cats out the configuration or {'\n', EOF} if it can't be found
|
||||
stream_config(){
|
||||
cat "$HOME"/.xdg-sanity.conf 2>/dev/null \
|
||||
|| cat "$HOME"/.config/xdg-sanity.conf 2>/dev/null \
|
||||
|| cat /etc/xdg-sanity/xdg-sanity.conf 2>/dev/null \
|
||||
|| 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
|
||||
|
||||
test -n "$BROWSER" || BROWSER=$(cat /etc/xdg-sanity.conf | sed -n -e 's/^browser = //p' )
|
||||
|
||||
# check if we have curl(1)
|
||||
if ! command -v curl >/dev/null 2>&1; then
|
||||
printf "%s: Missing dependency: curl(1)\n" "$argv0"
|
||||
exit 71 # sysexits(3) EX_OSERR
|
||||
fi
|
||||
|
||||
test -n "$BROWSER" || BROWSER="$(stream_config | sed -ne 's/^browser *= *//p')"
|
||||
|
||||
# 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"
|
||||
else
|
||||
for EXT in /etc/xdg-sanity/extensions/*.sh; do
|
||||
TYPE=$(cat $EXT | sed -ne 's/^# EXT-TYPE=//p' | tr -d '\n')
|
||||
echo "Found $TYPE extension $EXT"
|
||||
|
||||
if [ "$TYPE" = "replace" ]; then
|
||||
echo "Modifying $INPUT..."
|
||||
argv1=$($EXT "$argv1")
|
||||
echo "Got $INPUT"
|
||||
elif [ "$TYPE" = "mime" ]; then
|
||||
echo "Modifying MIME type..."
|
||||
MIME="$($EXT "$argv1")"
|
||||
echo "Got $MIME"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
# determine the MIME type, strip everything after the first semicolon, and
|
||||
# check to see if it's HTML
|
||||
if [ "$MIME"= "text/html" ]; then
|
||||
$BROWSER $1
|
||||
$BROWSER "$1"
|
||||
else
|
||||
handlr launch "$MIME" -- "$1"
|
||||
fi
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
#!/bin/sh
|
||||
|
||||
# EXT-TYPE=mime
|
||||
|
||||
TEST=$(echo $1 | sed -ne 's/^h.\+\/\///p' | sed -e 's/\/.*\+//g')
|
||||
|
||||
if [ "$TEST" = "teddit.net" ]
|
||||
then
|
||||
echo "text/html"
|
||||
else
|
||||
echo $1
|
||||
fi
|
|
@ -0,0 +1,3 @@
|
|||
# EXT-TYPE=replace
|
||||
|
||||
replace youtube.com or youtu.be with piped.mint.lgbt
|
|
@ -0,0 +1,12 @@
|
|||
#!/bin/sh
|
||||
|
||||
# EXT-TYPE=replace
|
||||
|
||||
TEST=$(echo $1 | sed -ne 's/^h.\+\/\///p' | sed -e 's/\/.*\+//g')
|
||||
|
||||
if [ "$TEST" = "youtube.com" ]
|
||||
then
|
||||
echo $1 | sed -ne 's/youtube.com/piped.mint.lgbt/p'
|
||||
else
|
||||
echo $1
|
||||
fi
|
Loading…
Reference in New Issue