Skip to content

Instantly share code, notes, and snippets.

@jeroenvandijk
Last active January 17, 2019 11:14
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jeroenvandijk/a7f802bb9105bdc617b475d5996ba86b to your computer and use it in GitHub Desktop.
Save jeroenvandijk/a7f802bb9105bdc617b475d5996ba86b to your computer and use it in GitHub Desktop.
boot-clj + rebl
#http://boot-clj.com
#Wed Aug 22 17:16:41 CEST 2018
BOOT_CLOJURE_NAME=org.clojure/clojure
BOOT_CLOJURE_VERSION=1.10.0
BOOT_VERSION=2.8.2
# https://github.com/boot-clj/boot/wiki/JVM-Options#dont-swallow-stacktraces
BOOT_JVM_OPTIONS='-XX:-OmitStackTraceInFastThrow'
#!/usr/bin/env boot
(set-env!
:dependencies
'[[org.clojure/clojure "1.10.0"]
[seancorfield/boot-tools-deps "0.4.7"]
[rickmoynihan/nrebl.middleware "0.2.0"]])
(ns-unmap 'boot.user 'repl)
(require '[boot.task.built-in :as built-in])
(require '[boot-tools-deps.core :refer [deps]])
(deftask rebl []
(comp
(deps :quick-merge true
:resolve-aliases [:rebl])
(boot.task.built-in/repl
:middleware ['nrebl.middleware/wrap-nrebl]
:eval '(do
(require 'nrebl.middleware)
(in-ns 'nrebl.middleware)
(let [*prev (atom nil)]
(defn send-to-rebl! [{:keys [code] :as req} {:keys [value] :as resp}]
(let [[prev-code prev-value] @*prev]
(spit "rebl-log.txt" (str (pr-str [code value]) "\n") :append true)
(when (or value
(not= prev-code code))
(try
(rebl/submit (read-string code)
(read-string value))
(catch Exception e
(spit "rebl-log.txt" (str "\n\nFAIL" (pr-str [code value]) "\n\n") :append true)))))
(reset! *prev [code value])
resp))
(in-ns 'boot.user)
(require '[cognitect.rebl]) (cognitect.rebl/ui)))))
(deftask repl []
(comp
(deps :quick-merge true)
(boot.task.built-in/repl)))
{:paths ["resources" "src"]
:deps {org.clojure/clojure {:mvn/version "RELEASE"}}
:aliases
{:rebl {:extra-deps
{org.clojure/clojure {:mvn/version "1.10.0-RC2"}
org.clojure/core.async {:mvn/version "0.4.490"}
;; Get jar from http://rebl.cognitect.com/download.html
com.cognitect/rebl {:local/root "/usr/local/lib/clojure/REBL-0.9.109/REBL-0.9.109.jar"}}}
:runner
{:extra-deps {com.cognitect/test-runner
{:git/url "https://github.com/cognitect-labs/test-runner"
:sha "76568540e7f40268ad2b646110f237a60295fa3c"}}
:main-opts ["-m" "cognitect.test-runner"
"-d" "test"]}}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment