1
1
#! /usr/bin/env bash
2
2
3
3
# 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
+ }
5
29
6
30
prepend_git_log_to_file () {
7
31
local FILE=" $1 "
8
32
local DIR=" ${FILE%/* } "
9
-
10
33
local TEMP_FILE=" $( mktemp) "
11
34
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 "
13
36
echo -e " \n\n" >> " $TEMP_FILE "
14
37
15
38
cat " $FILE " >> " $TEMP_FILE "
16
39
mv " $TEMP_FILE " " $FILE "
17
40
}
18
41
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
+ }
20
56
21
57
CHANGELOGS=(
22
58
" dotnet/CHANGELOG"
@@ -27,6 +63,5 @@ CHANGELOGS=(
27
63
" rust/CHANGELOG.md"
28
64
)
29
65
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