diff options
author | Colin Okay <okay@toyful.space> | 2022-03-13 13:56:49 -0500 |
---|---|---|
committer | Colin Okay <okay@toyful.space> | 2022-03-13 13:56:49 -0500 |
commit | 7ae6cbff1875ea271fa1724d6e53bc3d3d48dd26 (patch) | |
tree | 6559b13feda3729cc677cb5d80553dc295b2ccc1 /lib/state.lisp | |
parent | 07183b5bbb4d2e65514e3ec3e7cdf7e421f97749 (diff) |
support for running drafts; drafts accounted for in with-local-state
Diffstat (limited to 'lib/state.lisp')
-rw-r--r-- | lib/state.lisp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/state.lisp b/lib/state.lisp index 123bd79..8ab6c51 100644 --- a/lib/state.lisp +++ b/lib/state.lisp @@ -86,7 +86,7 @@ (defun fetch-draft (name) "Fetch a draft by name form the *DRAFTS* association list." - (cdr (assoc name *drafts*))) + (cdr (assoc name *drafts* :test #'string-equal))) (defun drop-draft (name) "Drop a draft by NAME from the *DFRAFTS* association list." @@ -143,6 +143,12 @@ CACHED-ONELINERS-FILE. NIL if there is no such file." :shell (prompt "With which shell should oneliners be run? " :prefill "bash"))) +(defun read-drafts-file () + (read-from-file (drafts-file))) + +(defun write-drafts-to-disk () + (print-to-file *drafts* (drafts-file))) + (defun ensure-config () "Ensures that a configuration file exists on disk, prompting the user for some input if it does not." @@ -158,6 +164,7 @@ user for some input if it does not." sets the api's *host* variable. If BODY produces no errors, the " `(let* ((*config* (ensure-config)) (*cache* (read-cache-file)) + (*drafts* (read-drafts-file)) (api:*host* (config-host *config*))) (assert api:*host* () "ol must be configured with a server host.") (set-term-width) @@ -165,6 +172,7 @@ sets the api's *host* variable. If BODY produces no errors, the " (progn ,@body ;; only if there is no error do we save the local state. + (write-drafts-to-disk) (write-cache-to-disk) (write-config-to-disk)) (error (e) |