docs.sh 1008 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #!/bin/sh
  2. # SPDX-License-Identifier: GPL-3.0-or-later
  3. # Copyright (c) 2012-2025 Daniele Bartolini et al.
  4. set -eu
  5. if [ $# -gt 1 ]; then
  6. echo "Usage: $0 [version]"
  7. echo ""
  8. exit;
  9. fi
  10. VERSION=$1
  11. if [ -z "${VERSION}" ]; then
  12. VERSION=$(git tag | tail -n 1)
  13. elif [ "${VERSION}" = "master" ]; then
  14. VERSION="master"
  15. else
  16. echo "Invalid version name"
  17. exit 1
  18. fi
  19. echo "Docs \`${VERSION}\` will be released"
  20. echo "Continue? [y/N]"
  21. read -r answer
  22. if [ "${answer}" != "y" ] && [ "${answer}" != "Y" ]; then
  23. echo "Bye."
  24. exit;
  25. fi
  26. # Switch to desired tag.
  27. git checkout "${VERSION}"
  28. # Build docs.
  29. make clean
  30. make docs
  31. # Update gh-pages branch.
  32. git checkout gh-pages
  33. rm -r html/"${VERSION}"
  34. mkdir html/"${VERSION}"
  35. cp -r build/docs/html/* html/"${VERSION}"
  36. # Update 'latest' only in stable releases.
  37. if [ "${VERSION}" != "master" ]; then
  38. rm -r html/latest
  39. mkdir html/latest
  40. cp -r build/docs/html/* html/latest
  41. git add html/latest
  42. fi
  43. # Commit changes.
  44. git add html/"${VERSION}"
  45. git commit -m "Docs ${VERSION}"