Skip to main content

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 cding 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.

  1. 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.
  2. uuencode expands the compressed bytes at least 33%.
  3. Tmux itself is not responsive while executing the subprocess. - we could run a background process instead of blocking.
  4. No progress indication - a periodic display-message would be the first thing to try.
  5. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tmux-helper-filetransfer-0.1.0.tar.gz (4.2 kB view details)

Uploaded Source

File details

Details for the file tmux-helper-filetransfer-0.1.0.tar.gz.

File metadata

  • Download URL: tmux-helper-filetransfer-0.1.0.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.6

File hashes

Hashes for tmux-helper-filetransfer-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0db0edddb9c711467fc3cab01e07e7a24e40be8a6d8b1a793b41041922546554
MD5 c4d12a35a5602a5d4195696432e4cc3b
BLAKE2b-256 162f26777e59b5d6c6fafe3645c1732d2c2f66a83a9d106c5a5720f5e1e034ce

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page