diff options
-rw-r--r-- | build-app.lisp | 6 | ||||
-rw-r--r-- | src/lib.lisp | 13 |
2 files changed, 19 insertions, 0 deletions
diff --git a/build-app.lisp b/build-app.lisp index 0899c33..72e5f5b 100644 --- a/build-app.lisp +++ b/build-app.lisp @@ -61,6 +61,8 @@ my1337pw.") (group (:header "HELP OPTIONS") (flag :long-name "explain" :description "View oneliner explaination text.") + (flag :long-name "whois" + :description "View information about a contributor. ARGS is just a contributor handle.") (enum :long-name "help" :enum '(:account :wiki :invites) :argument-name "TOPIC" @@ -122,6 +124,10 @@ than the users." (handler-case (let ((arguments (remainder))) (cond + ((getopt :long-name "whois") + (assert (first arguments)) + (cli::show-contributor (first arguments))) + ((getopt :long-name "redeem") (destructuring-bind (token name pass) arguments (cli::redeem-invite token name pass))) diff --git a/src/lib.lisp b/src/lib.lisp index c90a022..93a19aa 100644 --- a/src/lib.lisp +++ b/src/lib.lisp @@ -416,6 +416,19 @@ the directories that appear in the value of that variable." (api:put--contributor-who-signature (contributor-handle) :token (api-token)) (format t "Your signature was changed.~%")))) +(defun print-contributor (contributor) + (format t "~20a ~@[-- ~a~]~%" + (getf contributor :handle) + (getf contributor :signature))) + +(defun show-contributor (name) + (ensure-config) + (api:request-with + (:host (host)) + (a:when-let (contributor + (api:get--contributor-who name)) + (print-contributor (jonathan:parse contributor))))) + (defun redeem-invite (token name pass) (ensure-config ) (when (yes-or-no-p +agree-to-the-unlicense+) |