0.0
Repository is archived
No commit activity in last 3 years
No release in over 3 years
Use your local text editor to edit files on remote servers.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.2.3
~> 3.2.0
~> 0.6.1
~> 0.9.6

Runtime

~> 1.6.7
~> 1.3.2
~> 1.3.1
~> 1.16.2
 Project Readme

Text Tunnel

Text Tunnel is a tool to edit remote files with a local editor.

How It Works

The text_tunneld server runs on the local host. Using SSH, a reverse port forward is established on the remote host connecting back to the server. The text_tunnel client runs on the remote machine and is used as the editor binary. When the client is told to edit a file it sends the file to the server, and the server loads it in the local editor. The client polls the server for changes and downloads them whenever they occur.

Installation

The text_tunnel gem needs to be installed on both the local and remote hosts. Ruby 1.9.2+ required.

gem install text_tunnel

Usage

Start the server on the local machine. If you don't have an EDITOR environment variable set you will need to include an --editor option.

text_tunneld -e /usr/local/bin/subl

Connect to the remote host with SSH and specify a reverse port forward (the default port for Text Tunnel is 1777).

ssh -R 1777:localhost:1777 remote-host

On the remote machine use text_tunnel as your editor.

text_tunnel /path/to/file

The file should open on your local machine. Do your edits and save your file. It will automatically be transferred to the remote host. When you are done hit Crtl+C on the remote host to terminate Text Tunnel.

Shortcuts

The reverse port forward can be configured in ~/.ssh/config to avoid having to retype the reverse port forward on the command line every time.

RemoteForward 127.0.0.1:1777 127.0.0.1:1777

Consider setting text_tunnel as your EDITOR environment variable on your remote hosts. This will let you use a local text editor for git commit messages, crontabs, etc. If the text_tunneld server is unavailable it will seamlessly fall back to vi. You can use the --fallback-editor option to configure the fallback console editor.

export EDITOR='/usr/local/bin/text_tunnel --fallback-editor=nano'

text_tunneld supports a background daemon mode. Run text_tunneld -h for full options. You may want to configure it to run automatically when you log in to your desktop environment. Sadly, the exact means of doing this vary across platforms. On Ubuntu 12.04 with the Gnome Classic desktop environment you can configure a program to autostart in Applications -> System Tools -> Preferences -> Startup Applications. The following command would start text_tunneld in background mode with the "subl" editor.

text_tunneld --editor subl --daemon

Version History

  • 0.2.0
    • Unblock INT signal for bin/text_tunnel. This allows usage with crontab -e.
    • Fall back to local editor if text_tunneld server is unreachable.
    • Added information to readme about autostarting on desktop login.
  • 0.1.1
    • Add compatibility with older patch versions of Ruby 1.9.2.
  • 0.1.0
    • Initial release

License

Copyright (c) 2012 Jack Christensen, released under the MIT license