JonyEpsilon / gorilla-repl

A rich REPL for Clojure in the notebook style.
http://gorilla-repl.org
MIT License
887 stars 104 forks source link

Integrate Gorilla-REPL with boot #259

Open rqcy opened 8 years ago

rqcy commented 8 years ago

Hi, boot is, similarly to leiningen, a build tooling for Clojure.

Recently I started to play with its scripting mode [1], which could be very useful for Gorilla REPL. One can declare dependencies directly in a script (without external project file, e.g., projects.clj)!

It would be really cool, if this worked in Gorilla REPL -- just define all dependencies in one of the cells at the top and let them be handled by boot. The Gorilla files would be self-contained and without a need of creating external directory structure and managing project.clj.

What do you think about this idea? Would it be difficult to implement?

[1] https://github.com/boot-clj/boot/wiki/Scripts

benfb commented 7 years ago

I agree that this would be really neat. Unfortunately, I'm having a bit of trouble getting boot set up on my main computer for mysterious reasons. However, from what I can tell, it seems like this wouldn't be too difficult. The leiningen plugin just runs this, so if we can replicate that with boot, it should work.

ckampfe commented 7 years ago

There are a few integrations of gorilla repl with boot floating around. I think the most active is this one which is itself forked from a version I created. It's a tiny amount of code and when I last used it in 2016 I don't recall it having any issues. I may be getting back into using gorilla a bit more, so I'd be happy to answer questions or help if necessary.

ckampfe commented 7 years ago

For example, a minimum viable snippet for a boot script that runs gorilla looks like this:

#!/usr/bin/env boot

(set-env! :dependencies '[[sooheon/boot-gorilla "0.1.1-SNAPSHOT"]])

(require '[sooheon.boot-gorilla :refer [gorilla]])

(defn -main [& args]
  (boot (gorilla :block true)))

Then, chmod +x your_script.clj and ./your_script.clj. Make sure you have boot installed on your path and that should be all you need.