dunlin/command.fnl

23 lines
511 B
Plaintext
Raw Normal View History

2022-12-19 20:57:23 +00:00
(local { : Gtk } (require :lgi))
(local commands {})
(fn define-command [name function params]
(let [v {:name name :function function :params params}]
(tset commands name v)))
(define-command "quit-browser" #(Gtk.main_quit) {})
(fn prompt-missing-args [params explicit-args]
explicit-args)
(fn invoke [s args]
2022-12-19 20:57:23 +00:00
(match (. commands s)
{:function f :params p}
(let [prompted-args (prompt-missing-args p args)]
(f prompted-args))
2022-12-19 20:57:23 +00:00
nil (print "undefined command " s)))
{ : invoke }