Question

I would like to write a shell script to start a lein repl and then provide some commands while still keeping the repl running.

For example I might want to do the equivalent of:

lein repl
(dev)
(setup)

I can pipe to the repl by echo "(dev)\n(setup)" | lein repl but the repl terminates afterwards.

Is there a way to get around this or another means of starting a repl and issuing commands from a shell script?

Was it helpful?

Solution

(echo "(println :hello)"; cat <&0) | lein repl

This prints the command - letting the REPL process it -, then "switches back" to stdin for input. You might have to interrupt the cat call after leaving the REPL, though.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top