diff options
-rwxr-xr-x | bin/tissue | 27 |
1 files changed, 16 insertions, 11 deletions
@@ -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{<tissue-configuration>} 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* |