diff --git a/Makefile.am b/Makefile.am
index 48da047..caa00fb 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -14,7 +14,7 @@
# along with this program. If not, see .
DOMAIN := libreboot.at
-.PHONY: all build help upload website.tar.gz
+.PHONY: all build check help upload website.tar.gz
all: website.tar.gz
@@ -45,11 +45,25 @@ build:
-- \
./build.sh $(BUILD_OPTIONS)
+check: website.tar.gz
+ guix shell \
+ --container \
+ --network \
+ --emulate-fhs \
+ bash \
+ coreutils \
+ grep \
+ gzip \
+ tar \
+ -- \
+ ./check.sh --tarball website.tar.gz
+
help:
@printf "%s\n\t%s\n\t%s\n\t%s\n\t%s\n" \
"Available commands:" \
"help # Print this help" \
"test # run lighttpd on localhost:8080" \
+ "check # Run automatic tests" \
"upload # Upload the website to https://$(DOMAIN)" \
"website.tar.gz # Create a tarball of the website"
diff --git a/check.sh b/check.sh
new file mode 100755
index 0000000..167fc01
--- /dev/null
+++ b/check.sh
@@ -0,0 +1,66 @@
+#!/bin/sh
+# Copyright (C) 2022-2023 Denis 'GNUtoo' Carikli
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+# For compatibility with sysexits.h (see man 3 sysexits.h for more details)
+EX_USAGE=64
+
+tarball=""
+
+help()
+{
+ echo "Usage: $0 [options]"
+ echo ""
+ echo "Available options:"
+ echo -e "\t-h, --help"
+ echo -e "\t\tDisplay this help and exit."
+ echo -e "\t-t, --tarball TARBALL"
+ echo -e "\t\tCheck TARBALL\n"
+}
+
+test_pattern()
+{
+ name="$1"
+ tarball="$2"
+ pattern="$3"
+
+ tar tf "${tarball}" | grep -q "${pattern}"
+
+ result=$?
+
+ if [ ${result} -eq 0 ] ; then
+ echo "[ OK ] ${name}"
+ else
+ echo "[ !! ] ${name} failed"
+ exit 1
+ fi
+}
+
+run_tests()
+{
+ test_pattern "html test" "${tarball}" '\.html$'
+ test_pattern "jpg test" "${tarball}" '\.jpg$'
+}
+
+if [ $# -eq 1 ] && [ "$1" = "-h" -o "$1" == "--help" ] ; then
+ help
+ exit 0
+elif [ $# -eq 2 ] && [ "$1" = "-t" -o "$1" = "--tarball" ] ; then
+ tarball="$(realpath $2)"
+ run_tests "${tarball}"
+else
+ help
+ exit ${EX_USAGE}
+fi