45 lines
1.1 KiB
Markdown
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`
|