app/deme (fileserver): minor improvements, provide util:absolute-dir for docroot

This commit is contained in:
Helmut Merz 2024-07-01 18:36:41 +02:00
parent 9da223abc6
commit 04cce1ded4
3 changed files with 16 additions and 17 deletions

View file

@ -5,13 +5,11 @@
(config:root :env-keys '(:docroot :address :port)
:env-path (util:runtime-path ".env"))
(config:add :server :class 'server:config
:port "8800"
:address "0.0.0.0"
:routes
`((("api") server:message-handler)
(() server:fileserver
:doc-root
,(make-pathname
:directory (list :absolute (config:from-env :docroot "/var/www"))))))
;,(util:home-path "" "hugo" "0-public" "scopes" "hx"))))
(config:add :server
:class 'server:config
:port "8800"
:address "0.0.0.0"
:routes
`((("api") server:message-handler)
(() server:fileserver :doc-root
,(util:absolute-dir (config:from-env :docroot "/var/www/html")))))

View file

@ -48,14 +48,12 @@
(let* ((key (str:concat prefix (string sl)))
(env-val (uiop:getenv key))
(dotenv-val (if dotenv-data (gethash key dotenv-data))))
(format t "~&init after config:root key: ~s, env-val ~s~%"
key dotenv-val)
;(format t "~&init after config:root key: ~s, env-val ~s~%" key dotenv-val)
(if env-val
(setf (gethash sl data) env-val)
(setf (gethash sl data) dotenv-val))))))
(defun root (&rest params &key (class 'root) &allow-other-keys)
(format t "~&config:root params: ~s~%" params)
(setf *root* (apply #'make-instance class params)))
;;;; config base class

View file

@ -1,13 +1,13 @@
;;;; clscopes/util
;;;; Common utilities for the scopes project.
;;;; cl-scopes/util - common utilities for the scopes project
(defpackage :scopes/util
(:use :common-lisp)
(:export #:home-path #:relative-path #:runtime-path #:system-path))
(:export #:absolute-dir #:home-path #:relative-path #:runtime-path #:system-path))
(in-package :scopes/util)
;;;; directory and pathname utilities
(defun split-filename (name)
(let* ((parts (str:rsplit "." name :limit 2))
(n (car parts))
@ -17,6 +17,9 @@
(setf type nil))
(values n type)))
(defun absolute-dir (path)
(make-pathname :directory (list :absolute path)))
(defun relative-path (name &rest dirs)
(multiple-value-bind (n type) (split-filename name)
(make-pathname :name n :type type :directory (cons :relative dirs))))