Clean up output on candle-server
[candle] / bin / candle-server
index 3013adea9071dc9b387fefaaf054d388f4f6dc98..60a847cd26b011303932e96a22f4fa5fedf1ecf3 100755 (executable)
@@ -7,7 +7,6 @@
 (let
  ((*error-output* (make-broadcast-stream)))
  (asdf:load-system :candle))
-(asdf:load-system :opera)
 
 (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")))
+    :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: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)))))