lite-xl/scripts/generate-release-notes.sh

70 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
if [ ! -e "src/api/api.h" ]; then
echo "Please run this script from the root directory of Lite XL."; exit 1
fi
show_help() {
echo
echo "Release notes generator for lite-xl releases."
echo "USE IT AT YOUR OWN RISK!"
echo
echo "Usage: $0 <OPTIONS>"
echo
echo "Available options:"
echo
echo "--version Use this version instead of git tags or GitHub outputs."
echo "--debug Debug this script."
echo "--help Show this message."
echo
}
main() {
local version
for i in "$@"; do
case $i in
--debug)
set -x
shift
;;
--help)
show_help
exit 0
;;
--version)
version="$2"
shift
shift
;;
*)
# unknown option
;;
esac
done
if [[ -n $1 ]]; then
show_help
exit 0
fi
if [[ -z "$version" ]]; then
if [[ "$GITHUB_REF" == "refs/tags/"* ]]; then
version="${GITHUB_REF##*/}"
else
version="$(git describe --tags $(git rev-list --tags --max-count=1))"
if [[ $? -ne 0 ]]; then version=""; fi
fi
fi
if [[ -z "$version" ]]; then
echo "error: cannot get latest git tag"
exit 1
fi
export RELEASE_TAG="$version"
envsubst '$RELEASE_TAG' > release-notes.md < resources/release-notes.md
}
main "$@"