CLI Extension - Add load, help
authorFrank Duncan <frank@kank.net>
Sun, 15 May 2016 17:19:38 +0000 (12:19 -0500)
committerFrank Duncan <frank@kank.net>
Sun, 15 May 2016 17:19:38 +0000 (12:19 -0500)
src/main/cli.lisp
src/main/extensions/cli/cli.lisp

index 1aeb746c3b4b2c3842531bf2c6d222e5a1ad45bb..4dcc8f064a1f0faeb3d229625f2104932fec3e1c 100644 (file)
@@ -31,7 +31,7 @@ DESCRIPTION:
  (handler-case
   (with-output-to-string (*standard-output*)
    (clnl:run-commands str))
-  (error (e) (format nil "Ok, something went wrong: ~A" e))))
+  (error (e) (format nil "Ok, something went wrong: ~A~%Try :help" e))))
 
 ; for ui, we need to do at a minimum:
 ; - cli, first pass, read things in, bottom of the screen,
index 84533918e1e49c6156f501a7f050d9348f927a2d..6d24da7fd941542af047f7054a6ebaa73a3ebc1d 100644 (file)
@@ -11,8 +11,25 @@ DESCRIPTION:
 
   PRIMS returns the primitives used in the CLI extension."
  (list
-  (list :name :q :type :command :func #'shut-down)))
+  (list :name :q :type :command :func #'shut-down)
+  (list :name :load :type :command :args '(t) :func #'load-file)
+  (list :name :help :type :command :args '((:token :optional)) :precedence 20 :func #'help)))
 
 (defun shut-down ()
  (cl-charms/low-level:endwin)
  (sb-ext:exit :abort t))
+
+(defun load-file (file)
+ (clnl:boot file))
+
+(defun help (&optional token)
+ (format t
+  (if (not token)
+   "Placeholder help facility, try <:help :q> or <:help :load> for information about the commands we accept"
+   (case token
+    (:|:Q| ":q quits out of clnl")
+    (:|:LOAD|
+     (concatenate 'string
+      ":load <filename> loads up a model into the current clnl instance."
+      " Try :load \"resources/models/Wolf Sheep Predation.nlogo\""))
+    (t (format nil "Don't have help for ~S" token))))))