#!/bin/bash
# view gemini capsules
gemini_host=$(printf "$1" | sed 's#^gemini://\([^/]*\).*$#\1#gi')
if [ "$2" != "" ]
then
gemini_path="$2"
else
gemini_path="$1"
fi
printf "$gemini_path\r\n" | openssl s_client -quiet -ign_eof -connect $gemini_host:1965 2> /dev/null 1> /dev/shm/gemini.tmp
read gemini_status gemini_meta <<< $(head -n 1 /dev/shm/gemini.tmp | tr -d '\r\n')
printf "Status: %s, Meta: %s\n" $gemini_status $gemini_meta
clear
case "$gemini_status" in
2*)
if [ "$gemini_meta" == "text/gemini" ]; then
tail -n +2 /dev/shm/gemini.tmp | sed 's/^\(=>.*$\)/\o033[1;36m\1\o033[0m/gi'
else
tail -n +2 /dev/shm/gemini.tmp
fi
;;
3*)
printf "Redirecting to $gemini_meta...\n"
$0 "$gemini_meta"
;;
4*|5*)
printf "Error: $gemini_meta!\n"
;;
esac
if [ -e "/dev/shm/gemini.tmp" ]; then rm /dev/shm/gemini.tmp; fi