tools/publish-doc: enable pushing docs for specific tags
authorPeter Hutterer <peter.hutterer@who-t.net>
Wed, 7 Apr 2021 23:38:26 +0000 (09:38 +1000)
committerduna.oh <duna.oh@samsung.com>
Thu, 20 Feb 2025 01:53:14 +0000 (10:53 +0900)
Historically, I copied the docs on the server directly after pushing latest,
but (especially with meson) it's a lot easier to just build that specific tag
locally and rsync it to the correct target directory.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
tools/publish-doc

index f83704ae80d807143077df8d4eb05d8d9fd54a6b..525cd4b5e929d5351c5a581ebbc17e5e2325a9bb 100755 (executable)
@@ -2,10 +2,36 @@
 
 set -e
 
-builddir=_doc_build
+tag="$1"
+case $tag in
+       -h|--help)
+               echo "Usage: $0 <tag>"
+               echo "Builds the libevdev documentation and rsyncs it to the freedesktop.org server."
+               echo ""
+               echo "Options:"
+               echo "  tag ... the tag to build (default: master)"
+               exit 0
+               ;;
+       1*)
+               # Helper so we can run it with the numerical tag only, tags
+               # are all prefixed with libevdev
+               tag="libevdev-$tag"
+               ;;
+       **)
+               ;;
+esac
+tag=${tag:-master}
 
+dir=$(mktemp -d --tmpdir='' libevdev-doc.XXX)
+git clone --depth 1 --branch "$tag" https://gitlab.freedesktop.org/libevdev/libevdev.git "$dir"
+pushd $dir
+builddir=_doc_build
 rm -rf "$builddir"
 meson setup "$builddir"
 ninja -C "$builddir"
-rsync --delete -avz "$builddir/html/" freedesktop.org:/srv/www.freedesktop.org/www/software/libevdev/doc/latest
-rm -rf "$builddir"
+
+# Strip libevdev- prefix from the tag and replace master with latest, whichever applies
+htmldir=${tag/#libevdev-/}
+htmldir=${htmldir/master/latest}
+rsync --delete -avz "$builddir/html/" freedesktop.org:/srv/www.freedesktop.org/www/software/libevdev/doc/${htmldir}
+popd