wetty

File Downloading

WeTTY supports file downloads by printing terminal escape sequences between a base64 encoded file. The name of the downloaded file can optionally be provided, also base64 encoded, before the encoded file contents with a : separating them.

The terminal escape sequences used are ^[[5i and ^[[4i (VT100 for “enter auto print” and “exit auto print” respectively - https://vt100.net/docs/tp83/appendixc.html).

To take advantage add the following bash function to your .bashrc

function wetty-download() {
  file=${1:-/dev/stdin}

  nameprefix=""
  if [[ -f "$file" ]]; then
    nameprefix="$(basename "$file" | base64 -w 0):"
  fi


  if [[ -f "$file" || "$file" == "/dev/stdin" ]]; then
    printf "\033[5i"$nameprefix$(cat "$file" | base64 -w 0)"\033[4i"
  else
    echo "$file does not appear to be a file"
  fi
}

You are then able to download files via WeTTY!

wetty-download my-pdf-file.pdf

or you can still use the classic style:

$ cat my-pdf-file.pdf | wetty-download

WeTTY will then issue a popup like the following that links to a local file blob: Download ready: file-20191015233654.pdf