gnuboot-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v1 3/5] website: make the website prefix (software/gnuboot) confi


From: Denis 'GNUtoo' Carikli
Subject: [PATCH v1 3/5] website: make the website prefix (software/gnuboot) configurable.
Date: Mon, 3 Jun 2024 21:16:01 +0200

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
---
 website/Makefile.am                     | 42 ++++++++++-------
 website/check.sh                        | 61 ++++++++++++++++++-------
 website/configure.ac                    | 16 +++++++
 website/{index.html => index.html.tmpl} |  2 +-
 website/serve.sh                        | 15 +++---
 website/{site.cfg => site.cfg.tmpl}     |  6 +--
 6 files changed, 97 insertions(+), 45 deletions(-)
 rename website/{index.html => index.html.tmpl} (97%)
 rename website/{site.cfg => site.cfg.tmpl} (72%)

diff --git a/website/Makefile.am b/website/Makefile.am
index 62a001a..7f7f5e4 100644
--- a/website/Makefile.am
+++ b/website/Makefile.am
@@ -24,8 +24,14 @@ BUILD_OPTIONS += --with-untitled-path $(UNTITLED_PATH)
 GUIX_SHARE_OPTIONS += --share=`realpath $(UNTITLED_PATH)`
 endif
 
+index.html: index.html.tmpl
+       sed -e "s#WEBSITE_PREFIX#$(WEBSITE_PREFIX)#g" "$^" > "$@"
+
+site.cfg: site.cfg.tmpl
+       sed -e "s#WEBSITE_PREFIX#$(WEBSITE_PREFIX)#g" "$^" > "$@"
+
 if WANT_GUIX
-build:
+build: site.cfg
        guix time-machine \
        --commit=c15a1cd88f80a90437f4b0159f22dfc84b9e6851 \
        -- shell \
@@ -44,15 +50,15 @@ build:
                -- \
                ./build.sh $(BUILD_OPTIONS)
 else
-build:
+build: site.cfg
                ./build.sh $(BUILD_OPTIONS)
 endif
 
 if WANT_GUIX
-check: build website.tar.gz
+check: build website.tar.gz index.html
        rm -rf site/
-       mkdir -p site/software/gnuboot/
-       tar xf website.tar.gz -C site/software/gnuboot/
+       mkdir -p site/$(WEBSITE_PREFIX)
+       tar xf website.tar.gz -C site/$(WEBSITE_PREFIX)
 
        guix shell \
                --container \
@@ -66,15 +72,17 @@ check: build website.tar.gz
                sed \
                tar \
                -- \
-               ./check.sh --directory site && \
-               ./check.sh --tarball website.tar.gz
+               ./check.sh --website-prefix $(WEBSITE_PREFIX) \
+                       --directory site && \
+               ./check.sh  --website-prefix $(WEBSITE_PREFIX) \
+                       --tarball website.tar.gz
 else
-check: build website.tar.gz
+check: build website.tar.gz index.html
        rm -rf site/
-       mkdir -p site/software/gnuboot/
-       tar xf website.tar.gz -C site/software/gnuboot/
-       ./check.sh --directory site
-       ./check.sh --tarball website.tar.gz
+       mkdir -p site/$(WEBSITE_PREFIX)
+       tar xf website.tar.gz -C site/$(WEBSITE_PREFIX)
+       ./check.sh --website-prefix $(WEBSITE_PREFIX) --directory site
+       ./check.sh --website-prefix $(WEBSITE_PREFIX) --tarball website.tar.gz
 endif
 
 help:
@@ -83,7 +91,7 @@ help:
                "help           # Print this help" \
                "build          # Build the website" \
                "serve          # run lighttpd on localhost:$(LIGHTTPD_PORT)" \
-               "publish        # Publish the website to 
https://gnu.org/software/gnuboot"; \
+               "publish        # Publish the website to 
https://gnu.org/$(WEBSITE_PREFIX)" \
                "check          # Run automatic tests" \
                "website.tar.gz # Create a tarball of the website"
 
@@ -100,11 +108,13 @@ serve: website.tar.gz
                sed \
                tar \
                -- \
-               ./serve.sh website.tar.gz $(LIGHTTPD_PORT)
+               ./serve.sh --website-prefix $(WEBSITE_PREFIX) \
+                       website.tar.gz $(LIGHTTPD_PORT)
 else
 if WANT_LIGHTTPD
 serve: website.tar.gz
-               ./serve.sh website.tar.gz $(LIGHTTPD_PORT)
+               ./serve.sh --website-prefix $(WEBSITE_PREFIX) \
+                       website.tar.gz $(LIGHTTPD_PORT)
 else
 serve:
        @printf "%s %s\n" \
@@ -127,7 +137,7 @@ publish: website.tar.gz
                deploy/ \
                $(RSYNC_DESTINATION)/
 
-website.tar.gz: build
+website.tar.gz: build index.html
        tar \
                --exclude-vcs \
                --format=gnu \
diff --git a/website/check.sh b/website/check.sh
index c0fb90a..3fc9275 100755
--- a/website/check.sh
+++ b/website/check.sh
@@ -23,15 +23,34 @@ usage()
 {
        progname="$1"
 
-       echo "Usage: ${progname} <option [ARGUMENT]>"
-       echo ""
-       echo "Available options:"
-       echo -e "\t-h, --help"
-       echo -e "\t\tDisplay this help and exit."
-       echo -e "\t-d, --directory DIRECTORY"
-       echo -e "\t\tCheck DIRECTORY"
-       echo -e "\t-t, --tarball TARBALL"
-       echo -e "\t\tCheck TARBALL\n"
+       printf "Examples:\n"
+       printf "\t%s %s %s\n" \
+              "${progname}" \
+              "--website-prefix software/gnuboot" \
+              "--directory site"
+       printf "\t%s %s %s\n" \
+              "${progname}" \
+              "--website-prefix software/gnuboot" \
+              "--tarball website.tar.gz"
+       printf "\n"
+
+       printf "Usage:\n"
+       printf "\t%s %s\n" "${progname}" "<-h|--help>"
+       printf "\t%s %s %s\n" "${progname}" \
+              "--website-prefix PREFIX" "<COMMAND [ARGUMENT]>"
+       printf "\n"
+
+       printf "Main commands:\n"
+       printf "\t-d, --directory DIRECTORY\n"
+       printf "\t\tCheck DIRECTORY\n"
+       printf "\t-t, --tarball TARBALL\n"
+       printf "\t\tCheck TARBALL\n"
+       printf "\n"
+
+       printf "Other options:\n"
+       printf "\t-h, --help\n"
+       printf "\t\tDisplay this help and exit.\n"
+       printf "\n"
 }
 
 test_directory_pattern()
@@ -88,21 +107,23 @@ test_tarball_savannah_cvs_constraints()
 run_directory_tests()
 {
        directory="$1"
+       prefix="$2"
 
        directory_name="$(basename "${directory}")"
 
        test_directory_pattern "${directory_name}: index.html present test" \
                               "${directory}" \
-                              'software/gnuboot/index.html'
+                              "${prefix}/index.html"
 
        test_directory_pattern "${directory_name}: html test" \
                               "${directory}" \
-                              'software/gnuboot/web/.*\.html$'
+                              "${prefix}/web/.*\.html$"
 }
 
 run_tarball_tests()
 {
        tarball="$1"
+       prefix="$2"
 
        filename="$(basename "${tarball}")"
        test_tarball_pattern "${filename}: html test" "${tarball}" '\.html$'
@@ -117,12 +138,18 @@ run_tarball_tests()
 if [ $# -eq 1 ] && [ "$1" = "-h" -o "$1" == "--help" ] ; then
        usage "check.sh"
        exit 0
-elif [ $# -eq 2 ] && [ "$1" = "-d" -o "$1" = "--directory" ] ; then
-       directory="$(realpath "$2")"
-       run_directory_tests "${directory}"
-elif [ $# -eq 2 ] && [ "$1" = "-t" -o "$1" = "--tarball" ] ; then
-       tarball="$(realpath "$2")"
-       run_tarball_tests "${tarball}"
+elif [ $# -eq 4 ] && [ "$1" = "--website-prefix" ] ; then
+       prefix="$2"
+       if [ "$3" = "-d" -o "$3" = "--directory" ] ; then
+               directory="$(realpath "$4")"
+               run_directory_tests "${directory}" "${prefix}"
+       elif [ "$3" = "-t" -o "$3" = "--tarball" ] ; then
+               tarball="$(realpath "$4")"
+               run_tarball_tests "${tarball}" "${prefix}"
+       else
+               usage "check.sh"
+               exit ${EX_USAGE}
+       fi
 else
        usage "check.sh"
        exit ${EX_USAGE}
diff --git a/website/configure.ac b/website/configure.ac
index 6ae2c4f..74d7326 100644
--- a/website/configure.ac
+++ b/website/configure.ac
@@ -21,6 +21,7 @@ AC_SUBST([LIGHTTPD_PORT], [])
 AC_SUBST([RSYNC_DESTINATION], [])
 AC_SUBST([UNTITLED_PATH], [])
 AC_SUBST([UNTITLED_GIT_FOUND], [])
+AC_SUBST([WEBSITE_PREFIX], [])
 
 # --enable-guix
 AC_ARG_ENABLE(guix,
@@ -67,6 +68,19 @@ AC_ARG_WITH([untitled-path],
 
 AM_CONDITIONAL( [WANT_UNTITLED_PATH], [test x"$UNTITLED_PATH" != x""])
 
+# --with-website-prefix
+AC_ARG_WITH([website-prefix],
+  [AS_HELP_STRING(
+    [--with-website-prefix=PREFIX],
+    [By default, the website is to be deployed to
+     https://www.gnu.org/software/gnuboot/. But if you want to deploy to 
another
+     URL like https://mysite.org/test/, you would need to change the website
+     prefix to /test/ instead of the default one (software/gnuboot).])],
+  [WEBSITE_PREFIX=$withval],
+  [WEBSITE_PREFIX=software/gnuboot])
+
+AM_CONDITIONAL( [WANT_UNTITLED_PATH], [test x"$UNTITLED_PATH" != x""])
+
 # Check dependencies
 AC_CHECK_PROG([FOUND_AWK], [awk], [awk])
 AS_IF([test x"$FOUND_AWK" = x""],
@@ -175,3 +189,5 @@ AS_ECHO(["    RSYNC_DESTINATION: $RSYNC_DESTINATION"])
 
 AS_IF([test x"$UNTITLED_PATH" != x""],
       [AS_ECHO(["    UNTITLED_PATH: $UNTITLED_PATH"])])
+
+AS_ECHO(["    WEBSITE_PREFIX: $WEBSITE_PREFIX"])
diff --git a/website/index.html b/website/index.html.tmpl
similarity index 97%
rename from website/index.html
rename to website/index.html.tmpl
index 1a08910..fcba7aa 100644
--- a/website/index.html
+++ b/website/index.html.tmpl
@@ -21,6 +21,6 @@
   -- If not, see <https://www.gnu.org/licenses/>.
   -->
   <head>
-    <meta http-equiv="Refresh" content="0; 
url='https://gnu.org/software/gnuboot/web/'" />
+    <meta http-equiv="Refresh" content="0; 
url='https://gnu.org/WEBSITE_PREFIX/web/'" />
   </head>
 </html>
diff --git a/website/serve.sh b/website/serve.sh
index 4e29a69..17bb7f1 100755
--- a/website/serve.sh
+++ b/website/serve.sh
@@ -20,27 +20,26 @@ usage()
 {
        progname="$1"
 
-       echo "${progname} <path/to/tarball> [PORT]"
+       echo "${progname} --website-prefix PREFIX <path/to/tarball> [PORT]"
        exit 1
 }
 
-if [ $# -ne 1 ] && [ $# -ne 2 ] ; then
+if [ $# -ne 3 ] && [ $# -ne 4 ] && [ "$1" != "--website-prefix" ] ; then
        usage "serve.sh"
 fi
 
 basedir="$(dirname $(realpath $0))"
 
-tarball="$1"
+prefix="$2"
+tarball="$3"
 
 lighttpd_port=8086
 if [ $# -eq 2 ] ; then
-    lighttpd_port="$2"
+    lighttpd_port="$4"
 fi
 
-destdir="site/software/gnuboot/"
-mkdir -p "${destdir}"
-
-tar xf "${tarball}" -C "${destdir}"
+mkdir -p "site/${prefix}"
+tar xf "${tarball}" -C "site/${prefix}"
 
 sed -e "s#LIGHTTPD_PORT#${lighttpd_port}#g" \
     "${basedir}/lighttpd.conf.tmpl" > \
diff --git a/website/site.cfg b/website/site.cfg.tmpl
similarity index 72%
rename from website/site.cfg
rename to website/site.cfg.tmpl
index d71047a..59de858 100644
--- a/website/site.cfg
+++ b/website/site.cfg.tmpl
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+# Copyright (C) 2022-2024 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
 #
 # Permission is granted to copy, distribute and/or modify this document
 # under the terms of the GNU Free Documentation License, Version 1.3
@@ -7,6 +7,6 @@
 # A copy of the license is included in the website/COPYING directory.
 
 TITLE="GNU Boot"
-CSS="/software/gnuboot/web/global.css"
-DOMAIN="https://gnu.org/software/gnuboot/web/";
+CSS="/WEBSITE_PREFIX/web/global.css"
+DOMAIN="https://gnu.org/WEBSITE_PREFIX/web/";
 BLOGDIR="news/"
-- 
2.45.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]