file transfer cli utility for tmux
Project description
tmux-helper-filetransfer
Transfer files to filesystem of host accessible via tmux.
Usage
In tmux.conf
:
bind-key Q run-shell " \
/path/to/.venv/bin/python \
-m tmux_helper_filetransfer \
--pane-id '#{pane_id}' \
--tmux-exe /proc/#{pid}/exe \
--tmux-socket '#{socket_path}' \
--quiet \
/path/to/dotfiles"
This transfers /path/to/dotfiles
to the current directory in the remote
shell. To take other actions (like cd
ing to a specific directory before
transferring files), then run a shell script that executes the
helper inside.
Requirements
The target pane can be hosting a terminal on the local host or on a remote host (accessed via e.g. ssh).
The target pane's shell must be able to successfully execute
uudecode | gunzip -c - | tar xf -
.
The target pane's shell must be in insert mode (not vi-command mode).
Limitations
Some or all of these may be possible to overcome.
- Currently the local file processing requires that the entire file be held in memory at the same time, plus extra when both the tar and compressed objects are in scope - we would need streaming for the tar creation the compression and uuencoding.
uuencode
expands the compressed bytes at least 33%.- Tmux itself is not responsive while executing the subprocess. - we could run a background process instead of blocking.
- No progress indication - a periodic
display-message
would be the first thing to try. - No ability to cancel an in-progress transfer - if spawning a background process then giving the cli the ability to communicate via e.g. unix socket could be a good way to go.
Releasing
python setup.py sdist
# for testing
twine upload --repository testpypi dist/*
twine upload --repository pypi dist/*
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for tmux-helper-filetransfer-0.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0db0edddb9c711467fc3cab01e07e7a24e40be8a6d8b1a793b41041922546554 |
|
MD5 | c4d12a35a5602a5d4195696432e4cc3b |
|
BLAKE2b-256 | 162f26777e59b5d6c6fafe3645c1732d2c2f66a83a9d106c5a5720f5e1e034ce |