-- Leo's gemini proxy

-- Connecting to git.thebackupbox.net:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

repo: uritools
action: blob
revision:
path_from: copy_start_nevermind.sh
revision_from: refs/heads/master:
path_to:
revision_to:

git.thebackupbox.net

uritools

git://git.thebackupbox.net/uritools

blob of:

uritools

/ copy_start_nevermind.sh

refs/heads/master:/copy_start_nevermind.sh
 #!/bin/bash
 [ "$1" ] || exit 1
 uri="$1"

 queryfiltereduri="$(uriqueryfilter "$uri")"
 if [ "$uri" != "$queryfiltereduri" ];then
   trackeruri="$uri"
   uri="$queryfiltereduri"
 fi

 ### this clipping should be part of choose probably
 if [ "${uri}" != "${uri:0:64}" ];then
   prompt="${uri:0:64}..."
 else
   prompt="${uri}"
 fi

 scheme="$(uricut -s <<< "$uri")"

 with="$(urigetline "$uri" < <(uristart.conf))"
 if [ "$with" != "$(urigetline -a "$uri" < <(uristart.conf))" ];then
   with="[multiple matches]"
 fi

 selection="$(printf "start with: %s\nremote_csn\ncopy\nshorten\nunshorten\ntitle\nverbose\nforget\nsplit\nQR-image\nQR\n%s\n" "${with}" "$(printf "%s\n" "$uri" | uricut | grep -v '^whole')" \
              | choose "${prompt}")"
 #            | choose "$(printf "uri: '%s'\nwill be ran with: %s\n" "$uri" "$(urigetline "$uri")" )" -default start )"
 echo "$selection"
 case "$selection" in

 remote_csn)
   remote_host="$(choose "remote host to run URI on> " < ~/.config/urirhosts.conf)"
   ### TODO: include in the list our own display either to use -X or use our IP and display number?
   display="$(ssh "${remote_host}" myXdisplays | choose "which display?")"
   uristart "ssh://${remote_host}/copy_start_nevermind.sh%20${uri}?DISPLAY=$display"
   exit 0
   ;;

 verbose)
   x-terminal-emulator -e less -f <(printf "%s" "$uri")
   exit 0
   ;;

 copy)
   printf "%s" "$uri" | xclip -i
   exit 0
   ;;

 title)
   copy_start_nevermind.sh "$(urititle "$uri")"
   exit 0
   ;;

 forget)
   cp ~/.cache/uristart.log ~/.cache/uristart.log.tmp
   cat ~/.cache/uristart.log.tmp | grep -vFw "${uri}" > ~/.cache/uristart.log
   exit 0
   ;;

 start*)
   scheme="$(printf "%s\n" "$uri" | uricut -s)"
   ### might make sense to use xwindowURI for this value
   if [ "$(xdotool getwindowfocus)" != 0 ];then
     refering_window_title="$(xdotool getwindowfocus getwindowname)"
   else
     refering_window_title="[root window]"
   fi
   exec uristart "$uri" "$refering_window_title"
   exit 0
   ;;

 shorten)
   escaped="$(uriescape "$uri")"
   gemini-handler "gemini://epo.k.vu/submit?$escaped"
   exit 0
   ;;

 unshorten)
   copy_start_nevermind.sh "$(unshorten.sh "$uri")"
   exit 0
   ;;

 split)
   ret="$(printf "%s\n" "$uri" | tr ' ' '\n' | tr -s ' ' | choose "split> ")"
   if [ "$ret" ];then
     ## do NOT want newlines in the clipboard.
     printf "%s" "$ret" | xclip -i
   fi
   exit 0
   ;;

 QR-image)
   escaped="$(uriescape "$uri")"
   file=~/Pictures/qr-codes/"${escaped}".png
   qr "$uri" > "$file"
   copy_start_nevermind.sh "file://$file"
   ;;

 QR)
   x-terminal-emulator -hold -e bash -c "qr '$uri';echo 'uri: $uri'"
   ;;

 *)
   if [ "$selection" ];then
     exec printf "%s" "$selection" | cut '-d ' -f2- | xclip -i
   fi
   ;;
 esac

-- Response ended

-- Page fetched on Sun Jun 2 17:28:30 2024