Mercurial > core / lisp/lib/cli/clap/proto.lisp
changeset 698: |
96958d3eb5b0 |
parent: |
517c65b51e6b
|
author: |
Richard Westhaver <ellis@rwest.io> |
date: |
Fri, 04 Oct 2024 22:04:59 -0400 |
permissions: |
-rw-r--r-- |
description: |
fixes |
1 ;;; cli/clap/proto.lisp --- Clap Protocol 6 (in-package :cli/clap/proto) 8 (define-condition clap-condition () ()) 10 (deferror clap-error (clap-condition) ()) 11 (defwarning clap-warning (clap-condition) ()) 12 (deferror clap-simple-error (simple-error clap-error) () (:auto t)) 13 (deferror clap-unknown-argument (clap-error unknown-argument) ()) 14 (deferror clap-missing-argument (clap-error missing-argument) 15 ((kind :initarg :kind :initform nil))) 16 (deferror clap-invalid-argument (clap-error invalid-argument) ()) 17 (defwarning clap-simple-warning (simple-warning clap-warning) () (:auto t))) 19 (defun clap-unknown-argument (arg kind) 20 (error 'clap-unknown-argument :name arg :kind kind)) 22 (defun clap-missing-argument (arg kind) 23 (error 'clap-missing-argument :item arg :kind kind)) 25 (defun clap-invalid-argument (arg &key reason kind) 26 (error 'clap-invalid-argument :name arg :kind kind :reason reason)) 28 (defgeneric cmds (self)) 29 (defgeneric opts (self)) 31 (defgeneric cli-args (self) 32 (:method ((self null)) (args))) 34 (defgeneric push-cmd (cmd place)) 36 (defgeneric push-opt (opt place)) 38 (defgeneric pop-cmd (place)) 40 (defgeneric pop-opt (place)) 42 (defgeneric find-cmd (self name &optional active)) 44 (defgeneric (setf find-cmd) (new self name &optional active)) 46 (defgeneric find-opt (self name &optional active)) 48 (defgeneric (setf find-opt) (new self name &optional active)) 50 (defgeneric find-opts (self name &key active recurse)) 52 (defgeneric active-cmds (self)) 54 (defgeneric active-opts (self)) 56 (defgeneric activate-opt (self)) 58 (defgeneric activate-cmd (self)) 60 (defgeneric find-short-opts (self ch &key)) 62 (defgeneric call-opt (self arg)) 64 (defgeneric do-opt (self)) 66 (defgeneric do-opts (self)) 68 (defgeneric call-cmd (self args opts)) 70 (defgeneric do-cmd (self) 71 (:documentation "Run the command SELF with args parsed at runtime.")) 73 (defgeneric print-help (self &optional stream) 74 (:documentation "Format cli SELF as a helpful string.")) 76 (defgeneric print-version (self &optional stream) 77 (:documentation "Print the version of SELF.")) 79 (defgeneric print-usage (self &optional stream) 80 (:documentation "Format cli SELF as a useful string.")) 82 (defgeneric handle-unknown-opt (self opt) 83 (:documentation "Handle an unknown cli-opt.")) 85 (defgeneric handle-missing-opt (self opt) 86 (:documentation "Handle a missing cli-opt.")) 88 (defgeneric handle-invalid-opt (self opt &optional reason) 89 (:documentation "Handle an invalid cli-opt.")) 91 (defgeneric handle-unknown-arg (self arg) 92 (:documentation "Handle an unknown cli-arg.")) 94 (defgeneric handle-missing-arg (self arg) 95 (:documentation "Handle a missing cli-arg.")) 97 (defgeneric handle-invalid-arg (self arg &optional reason) 98 (:documentation "Handle an invalid cli-arg.")) 100 (defgeneric cli-equal (a b))