Skip to content

Commit 2794e45

Browse files
update for 2.0 major release (#5)
1 parent 2bd2b9f commit 2794e45

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

bin/latest-stable

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ printf "redirect url: %s\n" "$redirect_url" >&2
2323
if [[ "$redirect_url" == "$GH_REPO/releases" ]]; then
2424
version="$(list_all_versions | sort_versions | tail -n1 | xargs echo)"
2525
else
26-
version="$(printf "%s\n" "$redirect_url" | sed 's|.*/tag/v\{0,1\}||' | sed $CLEAN_RELEASE_REGEX)"
26+
version="$(printf "%s\n" "$redirect_url" | sed 's|.*/tag/v\{0,1\}||' | sed -E $REPLACE_RELEASE_REGEX)"
2727
fi
2828

2929
printf "%s\n" "$version"

lib/utils.bash

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,25 @@ set -euo pipefail
55
GH_REPO="https://github.com/biomejs/biome"
66
TOOL_NAME="biome"
77
TOOL_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.Z
23+
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

1028
fail() {
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]\+$
2747
list_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

3454
list_all_versions() {

0 commit comments

Comments
 (0)