#!/bin/sh INPUT=$(echo $1) echo "Loading configuration..." CONFIG=$(cat /etc/xdg-sanity/xdg-sanity.conf) BROWSER=$(echo $CONFIG | sed -ne 's/^browser *= *//p') if [ "$BROWSER" = "" ] then echo "Please place the path to your default browser's executable in /etc/xdg-sanity/xdg-sanity.conf" exit else echo "Found default browser $BROWSER" fi echo "Loading extensions..." 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..." INPUT=$($EXT "$INPUT") echo "Got $INPUT" else if [ "$TYPE" = "mime" ] then echo "Modifying MIME type..." MIME=$($EXT "$INPUT") echo "Got $MIME" fi fi done fi done if [ "$MIME" = "" ] || [ "$MIME" = "$1" ] || [ "$MIME" = "$INPUT" ] then echo "Determining MIME type of $INPUT:" # Determines HTTP code, might use for something else? # 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 handlr launch "$MIME" -- "$INPUT" fi