summary refs log tree commit diff
diff options
context:
space:
mode:
authorArun Isaac2023-01-29 00:18:27 +0000
committerArun Isaac2023-01-29 00:18:27 +0000
commitf9632ed5936a42999a938553a5226d769cd3e522 (patch)
tree03f82f05b4240b6cdec2fdbd17b91fb72867d368
parent1bd344bf4c0c31dff379a1e6f280ae715a0e328b (diff)
downloadtissue-f9632ed5936a42999a938553a5226d769cd3e522.tar.gz
tissue-f9632ed5936a42999a938553a5226d769cd3e522.tar.lz
tissue-f9632ed5936a42999a938553a5226d769cd3e522.zip
bin: Do not change into state directory when checking out.
Since the checkouts are created in the system-dependent temporary
directory, we no longer need to change into the state directory.

* bin/tissue (tissue-web): Do not change into state directory when
checking out.
-rwxr-xr-xbin/tissue44
1 files changed, 21 insertions, 23 deletions
diff --git a/bin/tissue b/bin/tissue
index 4ba69e7..f9524ac 100755
--- a/bin/tissue
+++ b/bin/tissue
@@ -268,29 +268,27 @@ Serve repositories specified in CONFIG-FILE over HTTP.
          (start-repl (assq-ref args 'listen-repl)))
        (let* ((state-directory (assq-ref args 'state-directory))
               (hosts (assq-ref args 'hosts)))
-         (call-with-current-directory state-directory
-           (lambda ()
-             (call-with-temporary-checkouts (map (match-lambda
-                                                   ((name _ ...)
-                                                    (string-append state-directory "/" name "/repository")))
-                                                 hosts)
-               (lambda checkouts
-                 (start-web-server (listen->socket-address (assq-ref args 'listen))
-                                   (map (match-lambda*
-                                          (((name parameters ...) repository-directory)
-                                           ;; Add CSS, repository directory,
-                                           ;; website directory, xapian
-                                           ;; directory settings for each host.
-                                           (parameterize ((%current-git-repository
-                                                           (repository-open repository-directory)))
-                                             (cons name
-                                                   `((project . ,(load-config))
-                                                     (repository-directory . ,repository-directory)
-                                                     (website-directory . ,(string-append state-directory "/" name "/website"))
-                                                     (xapian-directory . ,(string-append state-directory "/" name "/xapian"))
-                                                     ,@parameters)))))
-                                        hosts
-                                        checkouts)))))))))))
+         (call-with-temporary-checkouts (map (match-lambda
+                                               ((name _ ...)
+                                                (string-append state-directory "/" name "/repository")))
+                                             hosts)
+           (lambda checkouts
+             (start-web-server (listen->socket-address (assq-ref args 'listen))
+                               (map (match-lambda*
+                                      (((name parameters ...) repository-directory)
+                                       ;; Add CSS, repository directory,
+                                       ;; website directory, xapian
+                                       ;; directory settings for each host.
+                                       (parameterize ((%current-git-repository
+                                                       (repository-open repository-directory)))
+                                         (cons name
+                                               `((project . ,(load-config))
+                                                 (repository-directory . ,repository-directory)
+                                                 (website-directory . ,(string-append state-directory "/" name "/website"))
+                                                 (xapian-directory . ,(string-append state-directory "/" name "/xapian"))
+                                                 ,@parameters)))))
+                                    hosts
+                                    checkouts)))))))))
 
 (define tissue-web-dev
   (match-lambda*