Add Licensing and Contributing
[candle] / src / main / local / local.lisp
1 ; Copyright 2022 Frank Duncan (frank@consxy.com) under AGPL3.  See distributed LICENSE.txt.
2 (in-package #:candle-local)
3
4 (defvar *rsync-exec*)
5 (defvar *candle-location*)
6
7 (defmethod candle:process-job-in-system ((job-system (eql :local)) job)
8  (let
9   ((work-dir (format nil "~Awork/" candle:*candle-dir*))
10    (out nil)
11    (code nil))
12   (sb-ext:run-program
13    *rsync-exec*
14    (list
15     "-az"
16     "--delete"
17     (candle:project-dir (candle:job-project job))
18     work-dir))
19   (setf out
20    (with-output-to-string (out-str)
21     (setf code
22      (sb-ext:process-exit-code
23       (sb-ext:run-program
24        *candle-location*
25        (list "run")
26        :directory work-dir
27        :output out-str
28        :error out-str
29        :wait t)))))
30   (values (zerop code) out)))
31
32 ; NOOP as there is no service that needs to be cleaned up
33 (defmethod candle:shutdown-system ((job-system (eql :local))))