Move server cli into repository with its own file
authorFrank Duncan <frank@kank.net>
Sat, 18 Dec 2021 17:09:07 +0000 (11:09 -0600)
committerFrank Duncan <frank@kank.net>
Sat, 18 Dec 2021 17:09:07 +0000 (11:09 -0600)
bin/candle-server
candle.asd
src/main/package.lisp
src/main/server-cli.lisp [new file with mode: 0644]

index 60a847cd26b011303932e96a22f4fa5fedf1ecf3..5a1485939b7e6840efdb3e98bde2a764aa04bed1 100755 (executable)
@@ -8,53 +8,6 @@
  ((*error-output* (make-broadcast-stream)))
  (asdf:load-system :candle))
 
-(defpackage #:candle-server-cli (:use #:common-lisp))
-(in-package #:candle-server-cli)
-
-(defvar *options*
- '((:name :help :short "h" :long "help" :description "Print this usage.")
-   (:name :port :short "p" :long "port" :takes-argument t :variable-name "PORT"
-    :description "Port on which to listen for commands.  Defaults to 25004")
-   (:name :dir :long "candle-dir" :takes-argument t :variable-name "DIR"
-    :description "Directory for candle related data.  Will be created if does not exist.  Defaults to /opt/candle/")
-   (:name :system :long "system" :takes-argument t :variable-name "SYSTEM"
-    :description "System on which to run jobs.  Currently available are local and aws.  Defaults to local.")))
-
-(defun usage ()
- (format t "~A"
-  (opera:usage
-   "candle-server"
-   *options*
-   "Starts a candle continuous integration server.  Use 'candle' to interact with the server.")))
-
-(multiple-value-bind (options remaining-args error) (opera:process-arguments *options* (cdr sb-ext:*posix-argv*))
- (cond
-  ((opera:option-present :help options) (usage))
-  (remaining-args
-   (format *error-output* "Don't understand ~A.  See 'candle-server -h'~%" (car remaining-args))
-   (sb-ext:exit :code 1))
-  ((and (opera:option-present :port options) (not (parse-integer (opera:option-argument :port options) :junk-allowed t)))
-   (format *error-output* "--port requires a number.  See 'candle-server -h'~%"))
-  (t
-   (let
-    ((port (or (and
-                (opera:option-present :port options)
-                (parse-integer (opera:option-argument :port options) :junk-allowed t))
-            25004)))
-   (setf candle:*job-system*
-    (if (opera:option-present :system options)
-     (intern (string-upcase (opera:option-argument :system options)) :keyword)
-     :local))
-   (let
-    ((*error-output* (make-broadcast-stream)))
-    (case candle:*job-system*
-     (:aws (asdf:load-system :candle-aws))
-     (:local (asdf:load-system :candle-local))))
-   (setf candle:*candle-dir*
-    (if (opera:option-present :dir options)
-     (opera:option-argument :dir options)
-     "/opt/candle/"))
-   (format t "Starting server on port ~A~%" port)
-   (candle:server port nil)))))
+(candle-server-cli:run)
 
 ; vim:ft=lisp
index 30a6da37d1c87f76a6b402ca7b8d8cd6d67cfc31..77493d2ed09038e794353e713670fcd74b976305 100644 (file)
@@ -11,7 +11,8 @@
               (:file "run")
               (:file "processor")
               (:file "server")
-              (:file "cli"))
+              (:file "cli")
+              (:file "server-cli"))
  :depends-on (:herbie-utility :opera))
 
 (asdf:defsystem candle-aws
index 9d04cea70c555d4216a1aaed6d8f5c65fcab9b54..7545b28cead83e38cceb16675915a9b1cc4f0339 100644 (file)
@@ -8,5 +8,6 @@
   #:candle-error #:candle-error-reason))
 
 (defpackage #:candle-cli (:use :cl) (:export :run))
+(defpackage #:candle-server-cli (:use :cl) (:export :run))
 (defpackage #:candle-aws (:use :cl))
 (defpackage #:candle-local (:use :cl))
diff --git a/src/main/server-cli.lisp b/src/main/server-cli.lisp
new file mode 100644 (file)
index 0000000..8947727
--- /dev/null
@@ -0,0 +1,48 @@
+(in-package #:candle-server-cli)
+
+(defvar *options*
+ '((:name :help :short "h" :long "help" :description "Print this usage.")
+   (:name :port :short "p" :long "port" :takes-argument t :variable-name "PORT"
+    :description "Port on which to listen for commands.  Defaults to 25004")
+   (:name :dir :long "candle-dir" :takes-argument t :variable-name "DIR"
+    :description "Directory for candle related data.  Will be created if does not exist.  Defaults to /opt/candle/")
+   (:name :system :long "system" :takes-argument t :variable-name "SYSTEM"
+    :description "System on which to run jobs.  Currently available are local and aws.  Defaults to local.")))
+
+(defun usage ()
+ (format t "~A"
+  (opera:usage
+   "candle-server"
+   *options*
+   "Starts a candle continuous integration server.  Use 'candle' to interact with the server.")))
+
+(defun run ()
+ (multiple-value-bind (options remaining-args error) (opera:process-arguments *options* (cdr sb-ext:*posix-argv*))
+  (cond
+   ((opera:option-present :help options) (usage))
+   (remaining-args
+    (format *error-output* "Don't understand ~A.  See 'candle-server -h'~%" (car remaining-args))
+    (sb-ext:exit :code 1))
+   ((and (opera:option-present :port options) (not (parse-integer (opera:option-argument :port options) :junk-allowed t)))
+    (format *error-output* "--port requires a number.  See 'candle-server -h'~%"))
+   (t
+    (let
+     ((port (or (and
+                 (opera:option-present :port options)
+                 (parse-integer (opera:option-argument :port options) :junk-allowed t))
+             25004)))
+    (setf candle:*job-system*
+     (if (opera:option-present :system options)
+      (intern (string-upcase (opera:option-argument :system options)) :keyword)
+      :local))
+    (let
+     ((*error-output* (make-broadcast-stream)))
+     (case candle:*job-system*
+      (:aws (asdf:load-system :candle-aws))
+      (:local (asdf:load-system :candle-local))))
+    (setf candle:*candle-dir*
+     (if (opera:option-present :dir options)
+      (opera:option-argument :dir options)
+      "/opt/candle/"))
+    (format t "Starting server on port ~A~%" port)
+    (candle:server port nil))))))