Add *candle-dir*
authorFrank Duncan <frank@kank.net>
Fri, 10 Dec 2021 13:04:39 +0000 (07:04 -0600)
committerFrank Duncan <frank@kank.net>
Fri, 10 Dec 2021 13:04:39 +0000 (07:04 -0600)
bin/candle-server
src/main/base.lisp
src/main/package.lisp
src/main/server.lisp

index 3013adea9071dc9b387fefaaf054d388f4f6dc98..5422abedb3e58ee833d97c7caa07dd1d7a307f67 100755 (executable)
@@ -15,7 +15,9 @@
 (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 :port :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/")))
 
 (defun usage ()
  (format t "~A"
                 (opera:option-present :port options)
                 (parse-integer (opera:option-argument :port options) :junk-allowed t))
             25004)))
+   (setf candle:*candle-dir*
+    (if (opera:option-present :port options)
+     (opera:option-argument :port options)
+     "/opt/candle/"))
    (format t "Starting server on port ~A~%" port)
    (candle:server port nil)))))
 
index f06371b4f5e9333e2f5196bab633cb019bce1992..133e5150060b14e954bec3e602fdf36b7cbe0b77 100644 (file)
@@ -1,4 +1,6 @@
 (in-package #:candle)
 
+(defvar *candle-dir*)
+
 (lame-db:defdbstruct project name src)
 (lame-db:defdbstruct job status sha when-run (project :join project))
index 2eca80682be402c6d9155f4e124fb8a2e1ea9893..cf9cf1ed135bfa39e22f8b9614f71c19f7d1a006 100644 (file)
@@ -1,4 +1,4 @@
 (defpackage #:candle (:use :cl)
- (:export #:server #:add-project #:add-job #:run))
+ (:export #:server #:add-project #:add-job #:run #:*candle-dir*))
 
 (defpackage #:candle-cli (:use :cl) (:export :run))
index 6202cd0b86575ed3d85c50ccccecf192f0b0812b..d393feed245810c954c2444efa3feb0f9c19fe50 100644 (file)
@@ -1,15 +1,20 @@
 (in-package #:candle)
 
 (defun server (port &optional (background t))
- (lame-db:load-known-dbs "/home/herbie/.lame-db/data")
- (sb-thread:make-thread
-  (lambda ()
-   (do () (nil)
-    (progn
-     (sleep (* 5 60))
-     (lame-db:save-known-dbs "/home/herbie/.lame-db/data"))))
-  :name "Save Thread")
- (communication:start-listener port background))
+ (when (not *candle-dir*) (error "Need a candle dir"))
+ (let
+  ((data-dir (format nil "~Adata" *candle-dir*)))
+  (ensure-directories-exist *candle-dir*)
+  (ensure-directories-exist data-dir)
+  (lame-db:load-known-dbs data-dir)
+  (sb-thread:make-thread
+   (lambda ()
+    (do () (nil)
+     (progn
+      (sleep (* 5 60))
+      (lame-db:save-known-dbs data-dir))))
+   :name "Save Thread")
+  (communication:start-listener port background)))
 
 (defun add-project (name src)
  (when