summary refs log tree commit diff
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rwxr-xr-xbin/tissue27
1 files 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{<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*