aboutsummaryrefslogtreecommitdiffhomepage
path: root/bin
diff options
context:
space:
mode:
authorCalvin Rose <calsrose@gmail.com>2022-07-02 11:44:38 -0500
committerCalvin Rose <calsrose@gmail.com>2022-07-02 11:44:38 -0500
commit3595480e5f605b6e6bfe6d6ad113c92eeadfb746 (patch)
tree74ec472b9cf236a35e277f89e4eef741a9424db3 /bin
parentUpdate rawterm to compile on windows. (diff)
Add janet-netrepl script.
Wraps spork/netrepl to be much easier to use and convenient.
Diffstat (limited to 'bin')
-rw-r--r--bin/janet-netrepl48
1 files changed, 48 insertions, 0 deletions
diff --git a/bin/janet-netrepl b/bin/janet-netrepl
new file mode 100644
index 0000000..72f3db1
--- /dev/null
+++ b/bin/janet-netrepl
@@ -0,0 +1,48 @@
+#!/usr/bin/env janet
+
+(import spork/netrepl)
+(import spork/argparse)
+
+(defn- main
+ [&]
+
+ (def ap
+ (argparse/argparse
+ "Start a networked REPL server"
+
+ "host"
+ {:short "H"
+ :help (string "The server host to serve the repl on. Default is " netrepl/default-host)
+ :default netrepl/default-host
+ :kind :option}
+
+ "port"
+ {:short "P"
+ :help (string "The server port to serve the repl on. Default is " netrepl/default-port)
+ :default netrepl/default-port
+ :kind :option}
+
+ "client"
+ {:short "c"
+ :kind :flag
+ :help "Spawn a netrepl client instead of a server"}
+
+ "client-name"
+ {:short "n"
+ :kind :option
+ :help "Set the name of the connecting client"}
+
+ "single-env"
+ {:short "s"
+ :kind :flag
+ :help "Share a single environment between multiple connections"}))
+
+ # Break on help text
+ (unless ap (break))
+ (def host (ap "host"))
+ (def port (ap "port"))
+ (if (ap "client")
+ (netrepl/client host port (ap "client-name"))
+ (if (ap "single-env")
+ (netrepl/server-single host port)
+ (netrepl/server host port))))