11#! /usr/bin/env bash
22
33# Update changelogs in each of the bindings based on commits between provided reference and HEAD
4- PREVIOUS_TAG=$1
4+ VERSION=$1
5+ IFS=' .' read -r MAJOR_VERSION MINOR_VERSION PATCH_VERSION <<< " $VERSION"
6+ LANGUAGE=$2
7+
8+ calculate_previous_tag () {
9+ if [ " $PATCH_VERSION " -ne 0 ]; then
10+ PREVIOUS_TAG=" selenium-$MAJOR_VERSION .$MINOR_VERSION .$(( $PATCH_VERSION - 1 )) "
11+ if [ -n " $LANGUAGE " ] && [ " $PATCH_VERSION " -gt 1 ]; then
12+ PREVIOUS_TAG=" ${PREVIOUS_TAG} -$( get_tag_language) "
13+ fi
14+ elif [ $MINOR_VERSION -ne 0 ]; then
15+ PREVIOUS_TAG=" selenium-$MAJOR_VERSION .$(( $MINOR_VERSION - 1 )) .0"
16+ else
17+ echo " Cannot determine the previous tag from $VERSION "
18+ exit 1
19+ fi
20+ }
21+
22+ get_tag_language () {
23+ case $LANGUAGE in
24+ py) echo " python" ;;
25+ rb) echo " ruby" ;;
26+ * ) echo " $LANGUAGE " ;;
27+ esac
28+ }
529
630prepend_git_log_to_file () {
731 local FILE=" $1 "
832 local DIR=" ${FILE%/* } "
9-
1033 local TEMP_FILE=" $( mktemp) "
1134
12- git --no-pager log " ${PREVIOUS_TAG} ...${ HEAD} " --pretty=format:" * %B %n %an http://github.com/seleniumhq/selenium/commit/%H" --reverse -- " $DIR /" > " $TEMP_FILE "
35+ git --no-pager log " ${PREVIOUS_TAG} ...HEAD" --pretty=format:" * %B %n %an http://github.com/seleniumhq/selenium/commit/%H" --reverse -- " $DIR /" > " $TEMP_FILE "
1336 echo -e " \n\n" >> " $TEMP_FILE "
1437
1538 cat " $FILE " >> " $TEMP_FILE "
1639 mv " $TEMP_FILE " " $FILE "
1740}
1841
19- git --no-pager log " ${PREVIOUS_TAG} ...${HEAD} " --pretty=format:" * %B %n %an http://github.com/seleniumhq/selenium/commit/%H" --reverse -- . ' :!rb/' ' :!py/' ' :!javascript/' ' :!dotnet/' ' :!java/' ' :!rust/' >> changelog_updates.md
42+ update_language_changelogs () {
43+ calculate_previous_tag
44+
45+ for changelog in " ${CHANGELOGS[@]} " ; do
46+ lang=$( echo " $changelog " | cut -d/ -f1)
47+ if [[ " $LANGUAGE " == " $lang " || " $LANGUAGE " == " all" ]]; then
48+ prepend_git_log_to_file " $changelog "
49+ fi
50+ done
51+ }
52+
53+ print_generic_changes () {
54+ git --no-pager log " ${PREVIOUS_TAG} ...HEAD" --pretty=format:" * %B %n %an http://github.com/seleniumhq/selenium/commit/%H" --reverse -- . ' :!rb/' ' :!py/' ' :!javascript/' ' :!dotnet/' ' :!java/' ' :!rust/' >> changelog_updates.md
55+ }
2056
2157CHANGELOGS=(
2258 " dotnet/CHANGELOG"
@@ -27,6 +63,5 @@ CHANGELOGS=(
2763 " rust/CHANGELOG.md"
2864)
2965
30- for changelog in " ${CHANGELOGS[@]} " ; do
31- prepend_git_log_to_file " $changelog "
32- done
66+ update_language_changelogs
67+ print_generic_changes
0 commit comments