;;;; 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))