[Port site-control to golgonooza's site control clinton@unknownlamer.org**20081203230335 The port is a bit messy but it works and tee-it-up is nothing more than a test application that will be abandoned soon... ] { hunk ./src/packages.lisp 132 - :ucw-core :ucw-standard) + :ucw-core :ucw-standard :ucw-site-control) hunk ./src/packages.lisp 135 - :start-site - :stop-site - :restart-site)) + :start-golf-site + :stop-golf-site + :restart-golf-site)) hunk ./src/site-control.lisp 3 -(defvar *golf-server* nil - "UCW Server for tee-it-up") - -(defvar *golf-applications* nil - "Admin and frontend application") - -(defvar *golf-reaper* nil - "CLON Scheduler that expires sessions and deletes any stale uploads etc.") - hunk ./src/site-control.lisp 6 -(defun golf-web::get-golf-application (name) - (ecase name - ((:frontend) (first *golf-applications*)) - ((:backend) (second *golf-applications*)))) +(defclass golf-site (ucw-site) + () + (:default-initargs :data-root *golf-data-root*)) hunk ./src/site-control.lisp 10 -(defun make-golf-applications () - (if *golf-applications* - *golf-applications* - (setf *golf-applications* - (list - (make-instance 'golf-web:golf-frontend-application - :url-prefix "/" - :www-roots - (list `("static/" - . ,(format nil "~A~A" - *golf-data-root* "wwwroot/"))) - :javascript-log-level nil) - (make-instance 'golf-web:golf-admin-application - :url-prefix "/admin/" - :www-roots - (list `("static/" - . ,(format nil "~A~A" - *golf-data-root* "wwwroot/"))) - :javascript-log-level nil))))) +(defmethod make-entry-points ((site golf-site)) + (create-entry-points)) + +(defmethod start-site :before ((site golf-site)) + (connect) + (let ((data-root (data-root site))) + (setf (applications site) + (list + (cons :frontend + (make-instance 'golf-web:golf-frontend-application + :url-prefix "/" + :www-roots + (list `("static/" + . ,(format nil "~A~A" + data-root "wwwroot/"))) + :javascript-log-level nil)) + (cons :backend + (make-instance 'golf-web:golf-admin-application + :url-prefix "/admin/" + :www-roots + (list `("static/" + . ,(format nil "~A~A" + data-root "wwwroot/"))) + :javascript-log-level nil)))))) hunk ./src/site-control.lisp 35 -(defun start-reaping () - (stop-reaping) - (labels - ((reaper () - (mapc (lambda (app) - (format *debug-io* "Reaping sessions... ~D~%" - (length (ucw-core::remove-expired-sessions app)))) - *golf-applications*) - (format *debug-io* "Reaping files... ~D~%" - (length - (mapc (lambda (file) - (ignore-errors (delete-file file))) - (cl-fad:list-directory - ucw-core::*directory-for-temporary-files*)))))) - (setq *golf-reaper* - (clon:schedule-function - #'reaper - (clon:make-scheduler (clon:make-typed-cron-schedule :hour '*)) - :thread t :name "ucw stale bread reaper")))) +(defmethod stop-site :after ((site golf-site)) + (disconnect)) hunk ./src/site-control.lisp 38 -(defun stop-reaping () - (if *golf-reaper* - (setq *golf-reaper* - (sb-ext:unschedule-timer *golf-reaper*)))) +(defun golf-web::get-golf-application (application-name) + (find-site-application 'tee-it-up application-name)) hunk ./src/site-control.lisp 51 - hunk ./src/site-control.lisp 56 -(defun start-site () - (connect) - (make-golf-applications) - (create-entry-points) - (prog1 - (setq *golf-server* - (ucw-core:create-server - :backend `(:iolib :port ,*golf-server-port* - :host ,*golf-server-host*) - :applications *golf-applications* - :log-level (if *golf-dev-mode* ucw-core::+debug+ ucw-core::+warn+) - :log-root-directory (format nil "~A~A" *golf-data-root* "log/"))) - - (setf (ucw-core::request-content-length-limit-of - (ucw-core:server.backend *golf-server*)) - *golf-request-length-limit*) +(defun start-golf-site () + (register-site 'tee-it-up (make-instance 'golf-site))) hunk ./src/site-control.lisp 59 - (setf ucw-core:*debug-on-error* *golf-dev-mode*) - (setf ucw-core::*inspect-components* nil) - ;; (mapc (lambda (app) (setf (javascript-log-level app) nil)) -;; *golf-applications*) - (setq ucw-core::*directory-for-temporary-files* - (format nil "~A/~A/" - *golf-data-root* *golf-file-upload-root*)) - (start-reaping) - (start-restarter))) - -(defun stop-site () - (disconnect) - (stop-reaping) - (stop-restarter) - (ucw-core:shutdown-server *golf-server*) - (if (eq *golf-server* *default-server*) - (setq *default-server* nil)) - (setq *golf-server* nil)) +(defun stop-golf-site () + (unregister-site 'tee-it-up)) hunk ./src/site-control.lisp 62 -(defun restart-site () - (stop-site) - (start-site)) +(defun restart-golf-site () + (stop-golf-site) + (start-golf-site)) }