Skip to content

eraserhd/rep

Repository files navigation

rep

A single-shot nREPL client designed for shell invocation.

This connects to a running nREPL server (like kind started with lein repl, for example), sends some code to be evaluated, and prints the results and output.

$ rep '(clojure.tools.namespace.repl/refresh)'
:reloading ()
:ok

Unlike other nREPL clients, rep does not try to maintain a persistent connection, meaning that thread-local variables and bindings like *e and *1 will not persist across invocations of rep. Perhaps there are other limitations because of this?

Installation

On Unix-like systems:

$ make && sudo make install

On Windows, this can be built with Mingw:

> mingw32-make.exe

Usage, Options, and Examples

Building with Nix

You can use Nix as the build tool.

$ nix-build .

A result symlink will appear in the current directory point to the build output.

Running Tests

To run all the tests that CI runs, the way CI runs them (do this before issuing a pull request):

$ nix-build release.nix

Using with Kakoune

The rc/ folder contains scripts which add a ,e user mode to Kakoune. To link this to Kakoune’s autoload directory, do the following:

$ make && make install
$ ln -sf /usr/local/share/kak/autoload/plugins/rep.kak ~/.config/kak/autoload/

rep must be in the path for the plugin to work.

License

Copyright © 2018 Jason M. Felice

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.