changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > core / annotate lisp/lib/web/dash.lisp

changeset 664: 4d8451fe5423
parent: lisp/web/dash.lisp@386d51cf61ca
author: Richard Westhaver <ellis@rwest.io>
date: Sun, 22 Sep 2024 01:02:49 -0400
permissions: -rw-r--r--
description: moved web to lib/web, added dat/css
54
83f6c62bf2a8 cleanup
ellis <ellis@rwest.io>
parents:
diff changeset
1
 ;;; web/dash.lisp --- local user dashboard
83f6c62bf2a8 cleanup
ellis <ellis@rwest.io>
parents:
diff changeset
2
 
83f6c62bf2a8 cleanup
ellis <ellis@rwest.io>
parents:
diff changeset
3
 ;;; Code:
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents: 56
diff changeset
4
 (uiop:define-package :web/dash
381
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 354
diff changeset
5
   (:use :cl :std #+nil :lass #+nil :spinneret :cli/clap)
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 354
diff changeset
6
   ;; (:import-from :clack :clackup)
54
83f6c62bf2a8 cleanup
ellis <ellis@rwest.io>
parents:
diff changeset
7
   (:export 
83f6c62bf2a8 cleanup
ellis <ellis@rwest.io>
parents:
diff changeset
8
    :main
83f6c62bf2a8 cleanup
ellis <ellis@rwest.io>
parents:
diff changeset
9
    :serve-static-assets
83f6c62bf2a8 cleanup
ellis <ellis@rwest.io>
parents:
diff changeset
10
    :*web-dash-port*))
83f6c62bf2a8 cleanup
ellis <ellis@rwest.io>
parents:
diff changeset
11
 
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents: 56
diff changeset
12
 (in-package :web/dash)
54
83f6c62bf2a8 cleanup
ellis <ellis@rwest.io>
parents:
diff changeset
13
 
83f6c62bf2a8 cleanup
ellis <ellis@rwest.io>
parents:
diff changeset
14
 (defparameter *web-dash-port* 8800)
83f6c62bf2a8 cleanup
ellis <ellis@rwest.io>
parents:
diff changeset
15
 (defparameter *web-dash-static-directory* #P"/tmp/web/dash/static/")
83f6c62bf2a8 cleanup
ellis <ellis@rwest.io>
parents:
diff changeset
16
 
56
4c7d6e4b2162 web stuff
ellis <ellis@rwest.io>
parents: 54
diff changeset
17
 (defvar *server*)
54
83f6c62bf2a8 cleanup
ellis <ellis@rwest.io>
parents:
diff changeset
18
 
56
4c7d6e4b2162 web stuff
ellis <ellis@rwest.io>
parents: 54
diff changeset
19
 (defun main (&key  (output *standard-output*) (port *web-dash-port*))
54
83f6c62bf2a8 cleanup
ellis <ellis@rwest.io>
parents:
diff changeset
20
   (let ((*standard-output* output))
56
4c7d6e4b2162 web stuff
ellis <ellis@rwest.io>
parents: 54
diff changeset
21
     (print "starting dash server on ~A" port)
354
aeef48e62bc0 packy cli
Richard Westhaver <ellis@rwest.io>
parents: 308
diff changeset
22
     (handler-case (sb-thread:join-thread (find-if (lambda (th)
aeef48e62bc0 packy cli
Richard Westhaver <ellis@rwest.io>
parents: 308
diff changeset
23
                                                     (search "hunchentoot" (sb-thread:thread-name th)))
381
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 354
diff changeset
24
                                                   (sb-thread:list-all-threads)))
54
83f6c62bf2a8 cleanup
ellis <ellis@rwest.io>
parents:
diff changeset
25
       ;; Catch a user's C-c
83f6c62bf2a8 cleanup
ellis <ellis@rwest.io>
parents:
diff changeset
26
       (#+sbcl sb-sys:interactive-interrupt
83f6c62bf2a8 cleanup
ellis <ellis@rwest.io>
parents:
diff changeset
27
        () (progn
83f6c62bf2a8 cleanup
ellis <ellis@rwest.io>
parents:
diff changeset
28
             (format *error-output* "Aborting.~&")
381
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 354
diff changeset
29
             ;; (clack:stop *server*)
54
83f6c62bf2a8 cleanup
ellis <ellis@rwest.io>
parents:
diff changeset
30
             (uiop:quit)))
83f6c62bf2a8 cleanup
ellis <ellis@rwest.io>
parents:
diff changeset
31
       (error (c) (format t "Woops, an unknown error occured:~&~a~&" c)))))