42 lines
1.3 KiB
Bash
42 lines
1.3 KiB
Bash
#!/bin/sh
|
|
set -eu
|
|
|
|
root="${1:-/var/www/localhost/htdocs}"
|
|
|
|
render_page() {
|
|
lang="$1"
|
|
source="$2"
|
|
output="$3"
|
|
request_uri="$4"
|
|
|
|
mkdir -p "$(dirname "$output")"
|
|
echo "Rendering ${source} (${lang}) -> ${output}" >&2
|
|
# shellcheck disable=SC2016
|
|
if php -d display_errors=stderr -d log_errors=0 -r '
|
|
parse_str($argv[1], $_GET);
|
|
$_SERVER["HTTP_ACCEPT_LANGUAGE"] = $argv[2];
|
|
$_SERVER["REQUEST_METHOD"] = "GET";
|
|
$_SERVER["REQUEST_URI"] = $argv[3];
|
|
$_SERVER["PHP_SELF"] = "/" . $argv[4];
|
|
chdir($argv[5]);
|
|
include $argv[5] . "/" . $argv[4];
|
|
' "lang=$lang" "$lang" "$request_uri" "$source" "$root" > "$output"; then
|
|
return 0
|
|
else
|
|
status=$?
|
|
fi
|
|
|
|
echo "Failed rendering ${source} (${lang}) with exit status ${status}" >&2
|
|
rm -f "$output"
|
|
return "$status"
|
|
}
|
|
|
|
for lang in en nah; do
|
|
static_dir="$root/static-pages/$lang"
|
|
render_page "$lang" index.php "$static_dir/index.html" "/?lang=$lang"
|
|
render_page "$lang" cv.php "$static_dir/cv.html" "/cv.php?lang=$lang"
|
|
render_page "$lang" blog.php "$static_dir/blog.html" "/blog.php?lang=$lang"
|
|
render_page "$lang" demos.php "$static_dir/demos.html" "/demos.php?lang=$lang"
|
|
render_page "$lang" homelab-tree.php "$static_dir/homelab-tree.html" "/homelab-tree.php?lang=$lang"
|
|
done
|