2
0

docs.sh 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #!/bin/bash
  2. # SPDX-License-Identifier: GPL-3.0-or-later
  3. # Copyright (c) 2012-2026 Daniele Bartolini et al.
  4. set -eu
  5. . scripts/dist/version.sh
  6. NOCONFIRM=0
  7. PUSH=0
  8. ARGS=()
  9. while [ $# -gt 0 ]; do
  10. case "$1" in
  11. -h|--help)
  12. echo "Usage: $0 [options] [version]"
  13. echo ""
  14. echo "Options:"
  15. echo " --noconfirm Skip any user confirmations."
  16. echo " --push Push changes to remote."
  17. echo ""
  18. exit 0
  19. ;;
  20. --noconfirm)
  21. NOCONFIRM=1
  22. shift
  23. ;;
  24. --push)
  25. PUSH=1
  26. shift
  27. ;;
  28. -*)
  29. echo "Unknown option $1"
  30. exit 1
  31. ;;
  32. *)
  33. ARGS+=("$1")
  34. shift
  35. ;;
  36. esac
  37. done
  38. set -- "${ARGS[@]}"
  39. VERSION=${1-}
  40. VERSION_PATCH=$(crown_version_patch)
  41. if [ -z "${VERSION}" ]; then
  42. VERSION=$(crown_version)
  43. VERSION_DIR=v$(crown_version_major).$(crown_version_minor).0
  44. elif [ "${VERSION}" = "master" ]; then
  45. VERSION="master"
  46. VERSION_DIR="master"
  47. else
  48. echo "Invalid version name"
  49. exit 1
  50. fi
  51. if [ "${NOCONFIRM}" -eq 0 ]; then
  52. echo "Docs \`${VERSION}\` will be released"
  53. echo "Continue? [y/N]"
  54. read -r answer
  55. if [ "${answer}" != "y" ] && [ "${answer}" != "Y" ]; then
  56. echo "Bye."
  57. exit;
  58. fi
  59. fi
  60. # Build docs.
  61. make clean
  62. make docs
  63. # Update gh-pages branch.
  64. git checkout gh-pages
  65. rm -rf html/"${VERSION_DIR}"
  66. mkdir html/"${VERSION_DIR}"
  67. cp -r build/docs/html/* html/"${VERSION_DIR}"
  68. git add html/"${VERSION_DIR}"
  69. # Update 'latest' only in stable releases, excluding patches.
  70. if [ "${VERSION}" != "master" ] && [ "${VERSION_PATCH}" -eq 0 ]; then
  71. rm -rf html/latest
  72. mkdir html/latest
  73. cp -r build/docs/html/* html/latest
  74. git add html/latest
  75. fi
  76. # Commit changes.
  77. git commit -m "Docs ${VERSION}" || exit 0
  78. if [ "${PUSH}" -eq 1 ]; then
  79. git push origin gh-pages
  80. fi