#!/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