@@ -221,8 +221,9 @@ release_notes="$(execrelative ./release/generate_release_notes.sh --old-version
221
221
222
222
mkdir -p build
223
223
release_notes_file=" build/RELEASE-${new_version} .md"
224
+ release_notes_file_dryrun=" build/RELEASE-${new_version} -DRYRUN.md"
224
225
if (( dry_run)) ; then
225
- release_notes_file=" build/RELEASE- ${new_version} -DRYRUN.md "
226
+ release_notes_file=${release_notes_file_dryrun}
226
227
fi
227
228
get_editor () {
228
229
if command -v editor > /dev/null; then
@@ -261,25 +262,47 @@ else
261
262
fi
262
263
log
263
264
264
- if [[ -z ${editor} ]]; then
265
- log " No editor found, please set the \$ EDITOR environment variable for edit prompt."
266
- else
267
- while [[ ! ${edit:- } =~ ^[YyNn]$ ]]; do
268
- read -p " Edit release notes in \" ${editor} \" ? (y/n) " -n 1 -r edit
269
- log
270
- done
271
- if [[ ${edit} =~ ^[Yy]$ ]]; then
272
- " ${editor} " " ${release_notes_file} "
273
- release_notes2=" $( < " $release_notes_file " ) "
274
- if [[ " ${release_notes} " != " ${release_notes2} " ]]; then
275
- log " Release notes have been updated!"
276
- release_notes=" ${release_notes2} "
277
- else
278
- log " No changes detected..."
265
+ edit_release_notes () {
266
+ if [[ -z ${editor} ]]; then
267
+ log " No editor found, please set the \$ EDITOR environment variable for edit prompt."
268
+ else
269
+ while [[ ! ${edit:- } =~ ^[YyNn]$ ]]; do
270
+ read -p " Edit release notes in \" ${editor} \" ? (y/n) " -n 1 -r edit
271
+ log
272
+ done
273
+ if [[ ${edit} =~ ^[Yy]$ ]]; then
274
+ " ${editor} " " ${release_notes_file} "
275
+ release_notes2=" $( < " $release_notes_file " ) "
276
+ if [[ " ${release_notes} " != " ${release_notes2} " ]]; then
277
+ log " Release notes have been updated!"
278
+ release_notes=" ${release_notes2} "
279
+ else
280
+ log " No changes detected..."
281
+ fi
279
282
fi
280
283
fi
281
- fi
282
- log
284
+ log
285
+
286
+ if (( ! dry_run)) && [[ -f ${release_notes_file_dryrun} ]]; then
287
+ release_notes_dryrun=" $( < " ${release_notes_file_dryrun} " ) "
288
+ if [[ " ${release_notes} " != " ${release_notes_dryrun} " ]]; then
289
+ log " WARNING: Release notes differ from dry-run version:"
290
+ log
291
+ diff -u " ${release_notes_file_dryrun} " " ${release_notes_file} " || true
292
+ log
293
+ continue_with_new_release_notes=
294
+ while [[ ! ${continue_with_new_release_notes:- } =~ ^[YyNn]$ ]]; do
295
+ read -p " Continue with the new release notes anyway? (y/n) " -n 1 -r continue_with_new_release_notes
296
+ log
297
+ done
298
+ if [[ ${continue_with_new_release_notes} =~ ^[Nn]$ ]]; then
299
+ log
300
+ edit_release_notes
301
+ fi
302
+ fi
303
+ fi
304
+ }
305
+ edit_release_notes
283
306
284
307
while [[ ! ${preview:- } =~ ^[YyNn]$ ]]; do
285
308
read -p " Preview release notes? (y/n) " -n 1 -r preview
0 commit comments