Bridge the terminal and browser
Python Shell HTML R Other
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
common
doc
latch
live-plugins
plugins
static
testdata
third_party
webpipe
.gitignore
Auto
LICENSE
README.md
deps.sh
doc.sh
install.sh
latch.sh
run.sh
webpipe-test.sh
webpipe.R
wp-dev.sh
wp-stub.sh
wp-test.sh
wp.sh

README.md

webpipe

webpipe is server and a set of tools which bridge the Unix shell and the web. You create files in a terminal (using R, a shell script, etc.), and they will be rendered immediately in your browser.

It gets rid of the Alt-Tab F5 dance when creating content.

End Users

See doc/webpipe.html for instructions on how to use it.

Developing

Use the wp-dev.sh wrapper for wp.sh:

$ ./wp-dev.sh run

This script relies on a couple dependencies existing in hard-coded paths. Fetch them as follows:

Make a ~/hg dir.

$ hg clone https://code.google.com/p/json-template/ 

$ hg clone https://code.google.com/p/tnet/

JSON Template is the template language used, and TNET is the serialization format.

Portability

There are multiple components to webpipe, each with different portability goals.

It's somewhat confusing because the webpipe client often runs on server machines, and the webpipe server may run on your client machine (i.e. "localhost").

"Server" machines are some kind of Linux, or perhaps BSD. Client machines include those, but also add Mac.

From roughly least to most portable:

  • R client: this generally runs on a Linux box. It currently depends on "nc", which should be on most Linux boxes. netcat is very un-portable, but we are just using the simple invocation nc localhost $port, which is hopefully portable.

  • server and renderer: should run on Linux/Mac

  • shell client: this is the MOST portable one. Probably won't run on Mac. But right now it runs on machines without Python or bash! It just uses plain shell. And "nc" client only.

TODO: Get rid of nc servers. Not portable. socat servers also won't run well on Mac, and are not installed by default on Linux. So do it in Python.

Notes

Disclaimer: This is not an official Google project.