|
1 |
| -http_get_stdout () { |
2 |
| - local f="$(mktemp "ruby-build.http.XXXXXX")" |
3 |
| - http get "$1" "$f" |
4 |
| - cat "$f" |
5 |
| - rm -f "$f" |
6 |
| -} |
7 |
| - |
8 |
| -sort_release_urls () { |
9 |
| - # With release names like /^(jdk-)?24.1.0-dev-20240207_2228$/ |
10 |
| - # strip everything up to the last dash so we can use the date as the sort field. |
11 |
| - sed 's/\(.\{1,\}-\([0-9_]\{1,\}\)\)$/\2;\1/' | sort -rn | sed 's/.\{1,\};//' |
12 |
| -} |
13 |
| - |
14 |
| -find_asset_url () { |
15 |
| - local repo="$1" filename="$2" |
16 |
| - local releases_prefix="https://github.com/${repo}/releases" |
17 |
| - local assets_urls assets_url path |
18 |
| - local sort_release_urls=sort_release_urls |
19 |
| - type -t $sort_release_urls >/dev/null || sort_release_urls=cat |
20 |
| - |
21 |
| - # The releases page hides assets behind an "expanded_assets" url |
22 |
| - # so we gather those, sort them according to "sort_release_urls" and store |
23 |
| - # them in an array to loop over next. |
24 |
| - IFS=$'\n' read -d '' -r -a assets_urls < <(http_get_stdout "$releases_prefix" | grep -oE "$releases_prefix/expanded_assets/[^\"]+" | $sort_release_urls) |
25 |
| - |
26 |
| - # For each release look in the assets output for a download link to the specified filename. |
27 |
| - for assets_url in "${assets_urls[@]}"; do |
28 |
| - path="$(http_get_stdout "$assets_url" | grep -m1 -oE "/$repo/releases/download/[^/]+/$filename")" |
29 |
| - if [[ -n "$path" ]]; then |
30 |
| - echo "https://github.com/$path" |
31 |
| - return 0 |
32 |
| - fi |
33 |
| - done |
34 |
| - |
35 |
| - echo "Failed to find $repo release containing $filename" >&2 |
36 |
| - return 1 |
37 |
| -} |
38 |
| - |
39 |
| -truffleruby_asset_url () { |
40 |
| - find_asset_url "graalvm/oracle-graalvm-dev-builds" "$1" |
41 |
| -} |
42 |
| - |
43 | 1 | platform="$(uname -s)-$(uname -m)"
|
44 | 2 | case $platform in
|
45 | 3 | Linux-x86_64)
|
46 |
| - truffleruby_url="$(truffleruby_asset_url "truffleruby-dev-linux-amd64.tar.gz")" || return $? |
47 |
| - install_package "truffleruby-gftc-dev" "$truffleruby_url" truffleruby |
| 4 | + url="https://raw.githubusercontent.com/graalvm/graal-languages-ea-builds/main/truffleruby/versions/latest-native-linux-amd64.url" |
48 | 5 | ;;
|
49 | 6 | Linux-aarch64)
|
50 |
| - truffleruby_url="$(truffleruby_asset_url "truffleruby-dev-linux-aarch64.tar.gz")" || return $? |
51 |
| - install_package "truffleruby-gftc-dev" "$truffleruby_url" truffleruby |
| 7 | + url="https://raw.githubusercontent.com/graalvm/graal-languages-ea-builds/main/truffleruby/versions/latest-native-linux-aarch64.url" |
52 | 8 | ;;
|
53 | 9 | Darwin-x86_64)
|
54 |
| - truffleruby_url="$(truffleruby_asset_url "truffleruby-dev-macos-amd64.tar.gz")" || return $? |
55 |
| - install_package "truffleruby-gftc-dev" "$truffleruby_url" truffleruby |
| 10 | + url="https://raw.githubusercontent.com/graalvm/graal-languages-ea-builds/main/truffleruby/versions/latest-native-darwin-amd64.url" |
56 | 11 | ;;
|
57 | 12 | Darwin-arm64)
|
58 |
| - truffleruby_url="$(truffleruby_asset_url "truffleruby-dev-macos-aarch64.tar.gz")" || return $? |
59 |
| - install_package "truffleruby-gftc-dev" "$truffleruby_url" truffleruby |
| 13 | + url="https://raw.githubusercontent.com/graalvm/graal-languages-ea-builds/main/truffleruby/versions/latest-native-darwin-aarch64.url" |
60 | 14 | ;;
|
61 | 15 | *)
|
62 | 16 | colorize 1 "Unsupported platform: $platform"
|
63 | 17 | return 1
|
64 | 18 | ;;
|
65 | 19 | esac
|
| 20 | + |
| 21 | +pushd "$BUILD_PATH" >/dev/null |
| 22 | +http get $url url.txt |
| 23 | +url=$(<url.txt) |
| 24 | +popd |
| 25 | + |
| 26 | +install_package "truffleruby+graalvm-dev" "$url" truffleruby |
0 commit comments