cl-scopes/app/demo/main.lisp

35 lines
1.1 KiB
Common Lisp

;;;; cl-scopes/app/demo/main - sample main program
(defpackage :scopes/app/demo
(:use :common-lisp)
(:local-nicknames (:config :scopes/config)
(:cs-hx :scopes/frontend/cs-hx)
(:core :scopes/core)
(:forge :scopes/forge)
(:logging :scopes/logging)
(:server :scopes/web/server)
(:util :scopes/util))
(:export #:main))
(in-package :scopes/app/demo)
(defvar *quit-queue* (lparallel.queue:make-queue :fixed-capacity 1))
(defun main()
;(setf (trivial-signal:signal-handler :int) #'quit-handler)
;(setf (trivial-signal:signal-handler :term) #'quit-handler)
(let ((config-path (util:relative-path "config" "etc")))
(format t "~%Hello World.~%config-path: ~s~%" config-path)
(load config-path))
(unwind-protect
(progn
(core:setup-services)
;(setf forge:*forge-env* (forge:forge-env))
;(forge:setup-builtins)
;(forge:repl)
(lparallel.queue:pop-queue *quit-queue*))
(core:shutdown)))
(defun quit-handler (sig)
(format t "~%quit-handler: got signal ~s~%" sig)
(lparallel.queue:push-queue sig))