@@ -5,7 +5,25 @@ set -euo pipefail
55GH_REPO=" https://github.com/biomejs/biome"
66TOOL_NAME=" biome"
77TOOL_TEST=" biome --version"
8- CLEAN_RELEASE_REGEX=' s/^cli\/v//'
8+
9+ # sed requires escaped slashes, while grep does not, but we want to keep the major release prefixes consistent, so we
10+ # use this to escape the slashes in the prefixes.
11+ escape_slashes () {
12+ local input=" $1 "
13+ echo " $input " | sed ' s/\//\\\//g'
14+ }
15+
16+ MAJOR_1_PREFIX=' cli/v'
17+ MAJOR_2_PREFIX=' @biomejs/biome@'
18+
19+ # match either @biomejs/biome@ or cli/v
20+ RELEASE_PREFIX_REGEX=' \(@biomejs/biome@\|cli\/v\)'
21+
22+ # match either @biomejs/[email protected] or cli/vX.Y.Z23+ RELEASE_REGEX=" ^\($MAJOR_1_PREFIX \|$MAJOR_2_PREFIX \)[0-9]\+\.[0-9]\+\.[0-9]\+$"
24+ REPLACE_RELEASE_REGEX=" s/^($( escape_slashes $MAJOR_1_PREFIX ) |$( escape_slashes $MAJOR_2_PREFIX ) )//"
25+
26+ echo $MAJOR_1_PREFIX | sed ' s/\//\\\//'
927
1028fail () {
1129 echo -e " asdf-$TOOL_NAME : $* "
@@ -24,11 +42,13 @@ sort_versions() {
2442 LC_ALL=C sort -t. -k 1,1 -k 2,2n -k 3,3n -k 4,4n -k 5,5n | awk ' {print $2}'
2543}
2644
45+
46+ # @biomejs/biome@[0-9]\+\.[0-9]\+\.[0-9]\+$
2747list_github_tags () {
2848 git ls-remote --tags --refs " $GH_REPO " |
2949 grep -o ' refs/tags/.*' | cut -d/ -f3- |
30- grep -o " cli/v[0-9]\+\.[0-9]\+\.[0-9]\+$ " | # Match semantic versioning tags
31- sed $CLEAN_RELEASE_REGEX
50+ grep -o $RELEASE_REGEX | # Match semantic versioning tags
51+ sed -E $REPLACE_RELEASE_REGEX
3252}
3353
3454list_all_versions () {
0 commit comments