Files
terminal-lab/wetty/docs/downloading-files.md
2026-03-03 16:07:18 +08:00

45 lines
1.1 KiB
Markdown

# 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`
```bash
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!
```bash
wetty-download my-pdf-file.pdf
```
or you can still use the classic style:
```bash
$ 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`