summaryrefslogtreecommitdiff
path: root/bin/tissue
diff options
context:
space:
mode:
Diffstat (limited to 'bin/tissue')
-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*