| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- #!/bin/bash
- # SPDX-License-Identifier: GPL-3.0-or-later
- # Copyright (c) 2012-2026 Daniele Bartolini et al.
- set -eu
- . scripts/dist/version.sh
- NOCONFIRM=0
- PUSH=0
- ARGS=()
- while [ $# -gt 0 ]; do
- case "$1" in
- -h|--help)
- echo "Usage: $0 [options] [version]"
- echo ""
- echo "Options:"
- echo " --noconfirm Skip any user confirmations."
- echo " --push Push changes to remote."
- echo ""
- exit 0
- ;;
- --noconfirm)
- NOCONFIRM=1
- shift
- ;;
- --push)
- PUSH=1
- shift
- ;;
- -*)
- echo "Unknown option $1"
- exit 1
- ;;
- *)
- ARGS+=("$1")
- shift
- ;;
- esac
- done
- set -- "${ARGS[@]}"
- VERSION=${1-}
- VERSION_PATCH=$(crown_version_patch)
- if [ -z "${VERSION}" ]; then
- VERSION=$(crown_version)
- VERSION_DIR=v$(crown_version_major).$(crown_version_minor).0
- elif [ "${VERSION}" = "master" ]; then
- VERSION="master"
- VERSION_DIR="master"
- else
- echo "Invalid version name"
- exit 1
- fi
- if [ "${NOCONFIRM}" -eq 0 ]; then
- echo "Docs \`${VERSION}\` will be released"
- echo "Continue? [y/N]"
- read -r answer
- if [ "${answer}" != "y" ] && [ "${answer}" != "Y" ]; then
- echo "Bye."
- exit;
- fi
- fi
- # Build docs.
- make clean
- make docs
- # Update gh-pages branch.
- git checkout gh-pages
- rm -rf html/"${VERSION_DIR}"
- mkdir html/"${VERSION_DIR}"
- cp -r build/docs/html/* html/"${VERSION_DIR}"
- git add html/"${VERSION_DIR}"
- # Update 'latest' only in stable releases, excluding patches.
- if [ "${VERSION}" != "master" ] && [ "${VERSION_PATCH}" -eq 0 ]; then
- rm -rf html/latest
- mkdir html/latest
- cp -r build/docs/html/* html/latest
- git add html/latest
- fi
- # Commit changes.
- git commit -m "Docs ${VERSION}" || exit 0
- if [ "${PUSH}" -eq 1 ]; then
- git push origin gh-pages
- fi
|