X-Git-Url: https://code.consxy.com/gitweb/gitweb.cgi?p=candle;a=blobdiff_plain;f=src%2Fmain%2Fcli.lisp;h=44ae31770b3daca12c3502945f8703734b2bd370;hp=fc3f7fc9ece28ef0f0f6f9ec77b95252c1b91a6b;hb=bf450bcba73aca7398aa7574627746d3e30b4022;hpb=da046d80f2ea35db8bc03ee7691308ec3fbedd56 diff --git a/src/main/cli.lisp b/src/main/cli.lisp index fc3f7fc..44ae317 100644 --- a/src/main/cli.lisp +++ b/src/main/cli.lisp @@ -9,8 +9,11 @@ (defun project-options () '((:name :help :short "h" :long "help" :description "Print this usage.") (:name :add :long "add" :takes-argument t :description - "Add a project. is the name of the project, which must not include colons, while is the location of the repository for cloning. This location must be accessible by the machine running candle." - :variable-name ":"))) + "Add a project. NAME is the name of the project, which must not include colons, while SRC is the location of the repository for cloning. This location must be accessible by the machine running candle." + :variable-name "NAME:SRC") + (:name :delete :long "delete" :takes-argument t :description + "Delete a project named by NAME." + :variable-name "NAME"))) (defun job-options () '((:name :help :short "h" :long "help" :description "Print this usage.") @@ -49,12 +52,17 @@ (communication:query `(candle:add-project ,name ,src)) (format t "Added project ~A at src definition ~A~%" name src)))))) +(defun delete-project (name) + (communication:query `(candle:delete-project ,name)) + (format t "Removed project ~A~%" name)) + (defmethod execute-command ((command (eql :project)) args) (multiple-value-bind (options remaining-args error) (opera:process-arguments (project-options) args) (cond ((eql error :unknown-option) (format *error-output* "Unknown option: ~A. See 'candle project --help'.~%" (car remaining-args))) ((eql error :required-argument-missing) (format *error-output* "Missing argument for ~A. See 'candle project --help'.~%" (car remaining-args))) ((opera:option-present :help options) (format t "~A" (opera:usage "candle project" (project-options)))) + ((opera:option-present :delete options) (delete-project (opera:option-argument :delete options))) ((opera:option-present :add options) (add-project (opera:option-argument :add options)))))) (defun add-job (project-name sha)