aboutsummaryrefslogtreecommitdiff
path: root/src/prompt.lisp
diff options
context:
space:
mode:
authorColin Okay <okay@toyful.space>2022-03-11 08:35:55 -0600
committerColin Okay <okay@toyful.space>2022-03-11 08:35:55 -0600
commit08ba2769abb7a36817a725d30d64cfd36f5bcf32 (patch)
tree3068a5d9e1a4afd06a5f8b236658d4094e30dfef /src/prompt.lisp
parent62afeb3f21d3d8e8db045a001271e686e944a049 (diff)
separated app and lib modules, -osicat dep, +packages.lisp
Diffstat (limited to 'src/prompt.lisp')
-rw-r--r--src/prompt.lisp33
1 files changed, 0 insertions, 33 deletions
diff --git a/src/prompt.lisp b/src/prompt.lisp
deleted file mode 100644
index afe8604..0000000
--- a/src/prompt.lisp
+++ /dev/null
@@ -1,33 +0,0 @@
-;;;; prompt.lisp -- a function using readlline to collect text from the user
-
-(defpackage #:oneliners.cli.prompt
- (:use #:cl)
- (:local-nicknames (#:rl #:cl-readline))
- (:export #:prompt))
-
-(in-package :oneliners.cli.prompt)
-
-(defun prompt (prompt
- &key
- (expect (constantly t))
- retry-text
- (prefill ""))
- ;; register a prefill hook
- (rl:register-hook
- :pre-input
- (lambda ()
- (rl:insert-text prefill)
- (rl:redisplay)))
- (unwind-protect
- (loop
- with prompt-text = prompt
- with should-retry-p = t
- while should-retry-p
- for line = (rl:readline :prompt prompt-text)
- when (funcall expect line)
- do (setf should-retry-p nil)
- when retry-text
- do (setf prompt-text retry-text)
- finally (return line))
- ;; unregisters the hook.
- (rl:register-hook :pre-input nil)))