Public archive for the Return to Ritherdon project.
https://www.nicolaellisandritherdon.com
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
772 B
31 lines
772 B
2 years ago
|
(in-package :cl-user)
|
||
|
(defpackage ritherdon-archive
|
||
|
(:use :cl)
|
||
|
(:import-from :ritherdon-archive.config
|
||
|
:config)
|
||
|
(:import-from :clack
|
||
|
:clackup)
|
||
|
(:export :start
|
||
|
:stop))
|
||
|
(in-package :ritherdon-archive)
|
||
|
|
||
|
(defvar *appfile-path*
|
||
|
(asdf:system-relative-pathname :ritherdon-archive #P"app.lisp"))
|
||
|
|
||
|
(defvar *handler* nil)
|
||
|
|
||
|
(defun start (&rest args &key server port debug &allow-other-keys)
|
||
|
(declare (ignore server port debug))
|
||
|
(when *handler*
|
||
|
(restart-case (error "Server is already running.")
|
||
|
(restart-server ()
|
||
|
:report "Restart the server"
|
||
|
(stop))))
|
||
|
(setf *handler*
|
||
|
(apply #'clackup *appfile-path* args)))
|
||
|
|
||
|
(defun stop ()
|
||
|
(prog1
|
||
|
(clack:stop *handler*)
|
||
|
(setf *handler* nil)))
|