From 04cce1ded47a43f3797817298a0cf5100603d609 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Mon, 1 Jul 2024 18:36:41 +0200 Subject: [PATCH] app/deme (fileserver): minor improvements, provide util:absolute-dir for docroot --- app/demo/etc/config.lisp | 18 ++++++++---------- config.lisp | 4 +--- util.lisp | 11 +++++++---- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/app/demo/etc/config.lisp b/app/demo/etc/config.lisp index 3363aae..e55b59d 100644 --- a/app/demo/etc/config.lisp +++ b/app/demo/etc/config.lisp @@ -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"))))) diff --git a/config.lisp b/config.lisp index f8134a1..243e465 100644 --- a/config.lisp +++ b/config.lisp @@ -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 diff --git a/util.lisp b/util.lisp index 6efdfa5..67baf31 100644 --- a/util.lisp +++ b/util.lisp @@ -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))))