(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)) (defun add-project (name src) (when (not (cl-ppcre:scan "^[0-9A-Za-z-]*$" name)) (error "Name contains invalid characters")) (make-project :name name :src src) t) (defun add-job (project-name sha) (make-job :project (find project-name *all-project* :key #'project-name :test #'string=) :sha sha) t)