Skip to content

Commit 757de62

Browse files
committed
[build] update change log file to accept language
1 parent c606239 commit 757de62

File tree

1 file changed

+42
-7
lines changed

1 file changed

+42
-7
lines changed

scripts/update-changelogs.sh

+42-7
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,58 @@
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

630
prepend_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

2157
CHANGELOGS=(
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

Comments
 (0)