;;;; account.lisp (in-package :oneliners.cli.app ) (defhandler account/login/handler (username password) (ol:login username password)) (defun account/login/command () (cli:make-command :name "login" :usage " " :description "obtains an API access key and stores it locally" :handler #'account/login/handler)) (defun account/logout/handler (cmd) (declare (ignore cmd)) (ol:revoke-access)) (defun account/logout/command () (cli:make-command :name "logout" :description "revokes access for the currently stored key" :handler #'account/logout/handler)) (defun account/signature/handler (cmd) (declare (ignore cmd)) (ol:change-signature)) (defun account/signature/command () (cli:make-command :name "signature" :description "a signature is text users seen when they do `ol account whois `" :handler #'account/signature/handler)) (defhandler account/password/handler (old new) (ol:change-pw old new new)) (defun account/password/command () (cli:make-command :name "password" :usage " " :description "change your password" :handler #'account/password/handler)) (defhandler account/whois/handler (nick) (ol:show-contributor nick)) (defun account/whois/command () (cli:make-command :name "whois" :description "View the user's signature, if they have one." :handler #'account/whois/handler)) (defun account/invite/handler (cmd) (declare (ignore cmd)) (ol:request-invite-code)) (defun account/invite/command () (cli:make-command :name "invite" :description "request an invite token from the server" :handler #'account/invite/handler)) (defhandler account/redeem/handler (token name password) (ol:redeem-invite token name password)) (defun account/redeem/command () (cli:make-command :name "redeem" :usage " " :handler #'account/redeem/handler :description "redeem an invite token to create a new contributor account")) (defun account/subcommands () (list (account/login/command) (account/logout/command) (account/signature/command) (account/password/command) (account/whois/command) (account/invite/command) (account/redeem/command))) (defun account/handler (cmd) (cli:print-usage cmd t)) (defun account/command () (cli:make-command :name "account" :description "commands having to do with user accounts" :handler #'account/handler :sub-commands (account/subcommands)))