From 0b6c354eda626a99d7b5c785ca58cb2e30e7ea90 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Tue, 25 Mar 2025 20:01:51 +0000 Subject: bin: Spin out loading config from repository into separate function. * bin/tissue (normalize-host): Spin out loading config from repository into ... (load-config-from-repository): ... new function. --- bin/tissue | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/bin/tissue b/bin/tissue index 566cf36..1f91d48 100755 --- a/bin/tissue +++ b/bin/tissue @@ -242,6 +242,16 @@ port." socket-or-port) (make-tcp-server-socket #:port socket-or-port))))) +(define (load-config-from-repository repository-directory) + "Load configuration from @var{repository-directory}, and return a +@code{} object." + (parameterize ((%current-git-repository + (repository-open repository-directory))) + (call-with-temporary-checkout repository-directory + (lambda (temporary-checkout) + (call-with-current-directory temporary-checkout + load-config))))) + (define (normalize-host state-directory host) "Normalize @var{host} from @file{tissue.conf} adding in default and extra parameters for convenient processing later on. @@ -252,17 +262,12 @@ extra parameters for convenient processing later on. ;; settings for each host. (let ((repository-directory (string-append state-directory "/" name "/repository"))) - (parameterize ((%current-git-repository - (repository-open repository-directory))) - (cons name - `((project . ,(call-with-temporary-checkout repository-directory - (lambda (temporary-checkout) - (call-with-current-directory temporary-checkout - load-config)))) - (repository-directory . ,repository-directory) - (website-directory . ,(string-append state-directory "/" name "/website")) - (xapian-directory . ,(string-append state-directory "/" name "/xapian")) - ,@parameters))))))) + (cons name + `((project . ,(load-config-from-repository repository-directory)) + (repository-directory . ,repository-directory) + (website-directory . ,(string-append state-directory "/" name "/website")) + (xapian-directory . ,(string-append state-directory "/" name "/xapian")) + ,@parameters)))))) (define tissue-web (match-lambda* -- cgit v1.2.3