From 6cd72526b1e93a3bc425f3dd9eb2ff09b93a6b36 Mon Sep 17 00:00:00 2001 From: Mathias Fredriksson Date: Wed, 29 May 2024 21:40:49 +0300 Subject: [PATCH] chore(scripts): add safety check for difference between dry run release notes --- scripts/release.sh | 59 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 41 insertions(+), 18 deletions(-) diff --git a/scripts/release.sh b/scripts/release.sh index c2500aee2ec7d..1de32dc7e83b6 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -209,8 +209,9 @@ release_notes="$(execrelative ./release/generate_release_notes.sh --old-version mkdir -p build release_notes_file="build/RELEASE-${new_version}.md" +release_notes_file_dryrun="build/RELEASE-${new_version}-DRYRUN.md" if ((dry_run)); then - release_notes_file="build/RELEASE-${new_version}-DRYRUN.md" + release_notes_file=${release_notes_file_dryrun} fi get_editor() { if command -v editor >/dev/null; then @@ -249,25 +250,47 @@ else fi log -if [[ -z ${editor} ]]; then - log "No editor found, please set the \$EDITOR environment variable for edit prompt." -else - while [[ ! ${edit:-} =~ ^[YyNn]$ ]]; do - read -p "Edit release notes in \"${editor}\"? (y/n) " -n 1 -r edit - log - done - if [[ ${edit} =~ ^[Yy]$ ]]; then - "${editor}" "${release_notes_file}" - release_notes2="$(<"$release_notes_file")" - if [[ "${release_notes}" != "${release_notes2}" ]]; then - log "Release notes have been updated!" - release_notes="${release_notes2}" - else - log "No changes detected..." +edit_release_notes() { + if [[ -z ${editor} ]]; then + log "No editor found, please set the \$EDITOR environment variable for edit prompt." + else + while [[ ! ${edit:-} =~ ^[YyNn]$ ]]; do + read -p "Edit release notes in \"${editor}\"? (y/n) " -n 1 -r edit + log + done + if [[ ${edit} =~ ^[Yy]$ ]]; then + "${editor}" "${release_notes_file}" + release_notes2="$(<"$release_notes_file")" + if [[ "${release_notes}" != "${release_notes2}" ]]; then + log "Release notes have been updated!" + release_notes="${release_notes2}" + else + log "No changes detected..." + fi fi fi -fi -log + log + + if ((!dry_run)) && [[ -f ${release_notes_file_dryrun} ]]; then + release_notes_dryrun="$(<"${release_notes_file_dryrun}")" + if [[ "${release_notes}" != "${release_notes_dryrun}" ]]; then + log "WARNING: Release notes differ from dry-run version:" + log + diff -u "${release_notes_file_dryrun}" "${release_notes_file}" || true + log + continue_with_new_release_notes= + while [[ ! ${continue_with_new_release_notes:-} =~ ^[YyNn]$ ]]; do + read -p "Continue with the new release notes anyway? (y/n) " -n 1 -r continue_with_new_release_notes + log + done + if [[ ${continue_with_new_release_notes} =~ ^[Nn]$ ]]; then + log + edit_release_notes + fi + fi + fi +} +edit_release_notes while [[ ! ${preview:-} =~ ^[YyNn]$ ]]; do read -p "Preview release notes? (y/n) " -n 1 -r preview pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy