make-web/Makefile
2023-10-23 22:39:52 +02:00

89 lines
2.5 KiB
Makefile

all:
make -s website
debug:
make website
# Extensions in src/
# th - template with html code
# ph - page with html code
# pm - page with markdown code
# ps - page with shell code
# pa - page with asciidoctor code
# pt - page with plain text
PH_FILES != find src -type f -name "*.ph" | sed 's|src/||g'
PM_FILES != find src -type f -name "*.pm" | sed 's|src/||g'
PS_FILES != find src -type f -name "*.ps" | sed 's|src/||g'
PA_FILES != find src -type f -name "*.pa" | sed 's|src/||g'
PT_FILES != find src -type f -name "*.pt" | sed 's|src/||g'
STATIC_FILES != cat .control/static-files
REMOTE != cat .control/remote-ssh-target
$(PH_FILES):
echo "Create: src/$@ => www/${@:S/ph/html/}"
mkdir -p "$$(dirname www/${@})"
cat src/header.th > www/${@:S/ph/html/}
cat src/$@ >> www/${@:S/ph/html/}
cat src/footer.th >> www/${@:S/ph/html/}
$(PT_FILES):
echo "Create: src/$@ => www/${@:S/pt/html/}"
mkdir -p "$$(dirname www/${@})"
cat src/header.th > www/${@:S/pt/html/}
echo "<pre>" >> www/${@:S/pt/html/}
cat src/$@ >> www/${@:S/pt/html/}
echo "</pre>" >> www/${@:S/pt/html/}
cat src/footer.th >> www/${@:S/pt/html/}
$(PM_FILES):
echo "Create: src/$@ => www/${@:S/pm/html/}"
mkdir -p "$$(dirname www/${@})"
cat src/header.th > www/${@:S/pm/html/}
discount -f fencedcode src/$@ >> www/${@:S/pm/html/}
cat src/footer.th >> www/${@:S/pm/html/}
$(PS_FILES):
echo "Create: src/$@ => www/${@:S/ps/html/}"
mkdir -p "$$(dirname www/${@})"
cat src/header.th > www/${@:S/ps/html/}
ksh src/$@ >> www/${@:S/ps/html/}
cat src/footer.th >> www/${@:S/ps/html/}
$(PA_FILES):
echo "Create: src/$@ => www/${@:S/pa/html/}"
mkdir -p "$$(dirname www/${@})"
cat src/header.th > www/${@:S/pa/html/}
asciidoctor -e \
-r asciidoctor-diagram \
-a imagesdir=/tmp/adoc-tmp \
-a stylesheet! \
-a data-uri \
-o - src/$@ >> www/${@:S/pa/html/}
cat src/footer.th >> www/${@:S/pa/html/}
website: prepare copy-static-files $(PH_FILES) $(PM_FILES) $(PS_FILES) $(PA_FILES) $(PT_FILES)
prepare:
echo "Mkdir: www"
mkdir -p www
copy-static-files: prepare
rsync -a --partial --delete --no-p --no-o --no-g --out-format="Copy: %f => www/" $(STATIC_FILES) www/
clean:
make -s _clean
_clean:
echo "Delete: www"
rm -rf www
install:
make -s _install
_install: website
echo "Fixing Permissions in www/"
doas chown -R sdk:www www
doas chmod -R ugo+Xrw www
echo "Deploy: www/ => /var/www/htdocs/"
cd www && doas rsync -a --partial --delete --exclude "*/cache/*" --out-format="Deploy: %f => /var/www/htdocs/%f" * $(REMOTE)