#!/usr/bin/env bash set -e RELEASE_TOOL_IMAGE="ghcr.io/siderolabs/release-tool:latest" function release-tool { docker pull "${RELEASE_TOOL_IMAGE}" >/dev/null docker run --net=host --rm -w /src -v "${PWD}":/src:ro "${RELEASE_TOOL_IMAGE}" -l -d -n ${2} -t "${1}" ./hack/release.toml } function changelog { if [ "$#" -eq 1 ]; then (release-tool ${1}; echo; cat CHANGELOG.md) > CHANGELOG.md- && mv CHANGELOG.md- CHANGELOG.md else echo 1>&2 "Usage: $0 changelog [tag]" exit 1 fi } function release-notes { release-tool "${2}" --gfm > "${1}" echo -e '\n## Images\n\n```' >> ${1} ${ARTIFACTS}/talosctl-linux-amd64 image default >> ${1} echo -e '```\n' >> ${1} } function cherry-pick { if [ $# -ne 2 ]; then echo 1>&2 "Usage: $0 cherry-pick " exit 1 fi git checkout $2 git fetch git rebase upstream/$2 git cherry-pick -x $1 } function commit { if [ $# -ne 1 ]; then echo 1>&2 "Usage: $0 commit " exit 1 fi git commit -s -m "release($1): prepare release" -m "This is the official $1 release." } if declare -f "$1" > /dev/null then cmd="$1" shift $cmd "$@" else cat <