From 8e2eede487b24908c89d60bce272e4269135e4ec Mon Sep 17 00:00:00 2001
From: Ben Sima <ben@bsima.me>
Date: Tue, 21 Dec 2021 18:48:16 -0500
Subject: Extract repl program from bild

This is basically building on top of bild's analysis, which is great becuase it
means that bild is becoming a useful tool rather than a monolithic do-everything
job runner. The eventual goal is for the bild analysis to be much more useful,
maybe even provide data to remote repls or language-server or whatever.
---
 Biz/Ide/repl | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
 create mode 100755 Biz/Ide/repl

(limited to 'Biz/Ide')

diff --git a/Biz/Ide/repl b/Biz/Ide/repl
new file mode 100755
index 0000000..79e7875
--- /dev/null
+++ b/Biz/Ide/repl
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+#
+# a simple complement to bild which only deals with launching repls
+#
+# > repl <target>
+#
+# Starts a repl/shell for target.
+#
+#  - if target.hs, load ghci
+#  - TODO: if target.scm, load scheme repl
+#  - TODO: if target.nix, load nix-shell
+##
+  set -e
+  target=${1:?}
+  json=$(bild --json $1)
+  langdeps=$(jq --raw-output '.[].langdeps | join(" ")' <<< $json)
+  nix-shell \
+    --packages "(import $BIZ_ROOT/Biz/Bild.nix {}).ghcWith (h: with h; [$langdeps])" \
+    --command "ghci -i$BIZ_ROOT -ghci-script $BIZ_ROOT/.ghci $target"
+##
-- 
cgit v1.2.3