repl(1) -- sometimes you need a repl
repl is an interactive program which tenderly wraps another,
$ repl redis-cli -p 6665 >> set name chris OK >> get name chris >> info redis_version:1.000 uptime_in_seconds:182991 uptime_in_days:2 .. etc ..
$ repl gem >> --version 1.3.5 >> search yajl *** LOCAL GEMS *** yajl-ruby (0.6.7) >> search yajl -r *** REMOTE GEMS *** brianmario-yajl-ruby (0.6.3) filipegiusti-yajl-ruby (0.6.4) jdg-yajl-ruby (0.5.12) oortle-yajl-ruby (0.5.8) yajl-ruby (0.6.7)
$ repl git >> branch gh-pages * master >> tag rm v0.1.0 v0.1.1 v0.1.2 v0.1.3 >> tag -d rm Deleted tag 'rm' >> pwd git: 'pwd' is not a git-command. See 'git --help'. Did you mean this? add
You can also use
%s to tell repl where to stick the input:
$ repl heroku %s --app domainy >> info === domainy Web URL: http://domainy.heroku.com/ Git Repo: firstname.lastname@example.org:domainy.git Dynos: 1 Workers: 0 Repo size: 288k Slug size: 4k Data size: 0K in 0 table Addons: Piggyback SSL Owner: b****@*******.com
If you have rlwrap(1) installed you'll automatically get the full benefits of readline: history, reverse searches, etc.
repl is meant to wrap programs which accept command line arguments
and print to the standard output. It keeps no state between executed
lines and, as such, cannot be used to replace
irb or the Python
REPL (for example).
repl is easily installed as a standalone script:
export REPL_BIN=~/bin/repl curl -s http://github.com/defunkt/repl/raw/latest/bin/repl > $REPL_BIN chmod 755 $REPL_BIN
$REPL_BIN to your desired location and have at! (Just make
sure it's in your
repl can also be installed as a RubyGem:
$ gem install repl
rlwrap supports completion,
repl does too. Any file in
~/.repl matching the name of the command you start
repl with will
be used for completion.
For instance, a file named
~/.repl/redis-cli containing "get set
info" will cause "get", "set", and "info" to be tab completeable at
repl redis-cli prompt.
The directory searched for completion files can be configured using
REPL_COMPLETION_DIR environment variable.
See the repl-completion project for a few common, pre-rolled completion files.
The following environment variables affect
the prompt to display before each line of input. defaults to >>
directory in which completion files are kept
Once you've made your great commits:
- Fork repl
- Create a topic branch -
git checkout -b my_branch
- Push to your branch -
git push origin my_branch
- Create an Issue with a link to your branch
- That's it!
git clone git://github.com/defunkt/repl.git
- Home: http://github.com/defunkt/repl
- Bugs: http://github.com/defunkt/repl/issues
- Gems: http://gemcutter.org/gems/repl
Chris Wanstrath :: email@example.com :: @defunkt