From 710fd36b32fdf61c5858fd8d7f47891f07fa90d9 Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Wed, 20 Jul 2022 10:42:23 -0400 Subject: Add PORT argument to repl Also added -h help message. --- Biz/Ide/repl | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) (limited to 'Biz/Ide') diff --git a/Biz/Ide/repl b/Biz/Ide/repl index dfd8c3d..2ddbc4b 100755 --- a/Biz/Ide/repl +++ b/Biz/Ide/repl @@ -1,11 +1,20 @@ #!/usr/bin/env bash -# -# a simple complement to bild which only deals with launching repls -# -# > repl -# -# Starts a repl/shell for one or more targets. (Currently, all targets must have -# the same extension for this to work.) +### +### a simple complement to bild which only deals with launching repls +### +### > repl +### +### Starts a repl/shell for one or more targets. (Currently, all targets must +### have the same extension for this to work.) +### +### Repls started with this script should bind to `localhost:$PORT`. +help() { + sed -rn 's/^### ?//;T;p' "$0" +} +if [[ $# == 0 ]] || [[ "$1" == "-h" ]]; then + help + exit 1 +fi ## set -e targets=${@:?} @@ -14,6 +23,9 @@ exts=$(jq --raw-output '.namespace.ext' <<< $json | sort | uniq) case $exts in Hs) + if [ -z ${var+PORT} ]; then + echo "warn: repl: ghci does not support binding to a port" + fi nix-shell \ --packages "(import $BIZ_ROOT/Biz/Bild.nix {}).private.ghcWith (h: with h; [$langdeps])" \ --command "ghci -i$BIZ_ROOT -ghci-script $BIZ_ROOT/.ghci ${targets[@]}" @@ -26,12 +38,12 @@ nix-shell \ --packages "(import $BIZ_ROOT/Biz/Bild.nix {}).private.nixpkgs.guile_3_0" \ ${flags[@]} \ - --command "guile -L $BIZ_ROOT -C $BIZ_ROOT/_/int --r7rs --listen" + --command "guile -L $BIZ_ROOT -C $BIZ_ROOT/_/int --r7rs --listen=${PORT:-37146}" ;; Lisp) nix-shell \ --packages "(import $BIZ_ROOT/Biz/Bild.nix {}).private.sbclWith (p: with p; [asdf swank $langdeps])" \ - --command "sbcl --eval '(require :asdf)' --eval '(require :swank)' --eval '(swank:create-server)' --load $targets" + --command "sbcl --eval '(require :asdf)' --eval '(require :swank)' --eval '(swank:create-server :port ${PORT:-4005})' --load $targets" ;; *) echo "unsupported targets: ${targets[@]}" -- cgit v1.2.3