From 98a0dd64771f4abf7384888bced0fbc6fedeb656 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Thu, 21 Jul 2022 00:34:11 +0530 Subject: bin: Add tissue web-build subcommand. * bin/tissue (tissue-web-build): New function. * bin/tissue (print-usage): List web-build subcommand. (main): Invoke tissue-web-build. --- bin/tissue | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/bin/tissue b/bin/tissue index 30cad46..b217bb6 100755 --- a/bin/tissue +++ b/bin/tissue @@ -272,6 +272,32 @@ Serve repositories specified in CONFIG-FILE over HTTP. ,@parameters)))))) (assq-ref args 'hosts))))))) +(define tissue-web-build + (match-lambda* + (("--help") + (format #t "Usage: ~a web-build WEBSITE-DIRECTORY +Build website of current repository. +" + (command-line-program))) + ((website-directory) + (let ((config (load-config))) + (guard (c (else (format (current-error-port) + "Building website failed.~%") + (raise c))) + (call-with-temporary-directory + (lambda (temporary-output-directory) + (build-website (git-top-level) + temporary-output-directory + (tissue-configuration-web-css config) + (tissue-configuration-web-files config)) + (delete-file-recursively website-directory) + (rename-file temporary-output-directory + website-directory) + (chmod website-directory #o755)) + (dirname website-directory)))) + (format (current-error-port) + "Built website.~%")))) + ;; This is a noop, since the index is built on any tissue command. It ;; exists just for the --help usage summary. (define tissue-index @@ -292,6 +318,7 @@ COMMAND must be one of the sub-commands listed below: search search issues show show the text of an issue repl run a Guile script in a tissue environment + web-build build website of current repository web serve one or more repositories over HTTP pull pull latest from upstream repositories index index files @@ -469,6 +496,7 @@ Pull latest from upstream repositories. ("show" tissue-show) ("repl" tissue-repl) ("index" tissue-index) + ("web-build" tissue-web-build) (invalid-command (format (current-error-port) "Invalid command `~a'~%~%" invalid-command) -- cgit v1.2.3