62 lines
1.7 KiB
Bash
Executable File
62 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd -- "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
REPO_ROOT="$SCRIPT_DIR/../../../.."
|
|
|
|
if [[ -z ${IN_NIX_SHELL:-} ]]; then
|
|
cmd=(bash "$0" "$@")
|
|
exec nix-shell -I "nixpkgs=$REPO_ROOT" -p bash curl gnused gnugrep coreutils common-updater-scripts nix \
|
|
--command "$(printf '%q ' "${cmd[@]}")"
|
|
fi
|
|
|
|
cd "$REPO_ROOT"
|
|
|
|
RELEASES_ROOT="https://download.eclipse.org/tracecompass/releases"
|
|
|
|
latest_version=$(
|
|
curl -fsSL "${RELEASES_ROOT}/" \
|
|
| grep -oP "/tracecompass/releases/\\K[0-9.]+(?=')" \
|
|
| grep -E '[0-9]' \
|
|
| sort -V \
|
|
| sed -n '$p'
|
|
)
|
|
|
|
if [[ -z ${latest_version:-} ]]; then
|
|
echo "Failed to detect latest Trace Compass release version from ${RELEASES_ROOT}" >&2
|
|
exit 1
|
|
fi
|
|
|
|
release_page=$(curl -fsSL "${RELEASES_ROOT}/${latest_version}/rcp/")
|
|
latest_build=$(
|
|
printf "%s" "$release_page" \
|
|
| grep -oP "trace-compass-${latest_version}-\\K[0-9]{8}-[0-9]{4}(?=-linux\\.gtk\\.x86_64\\.tar\\.gz)" \
|
|
| sort \
|
|
| sed -n '$p'
|
|
)
|
|
|
|
if [[ -z ${latest_build:-} ]]; then
|
|
echo "Failed to detect linux build inside ${RELEASES_ROOT}/${latest_version}/rcp/" >&2
|
|
exit 1
|
|
fi
|
|
|
|
version="$latest_version"
|
|
build="$latest_build"
|
|
|
|
archive="trace-compass-${version}-${build}-linux.gtk.x86_64.tar.gz"
|
|
url="${RELEASES_ROOT}/${version}/rcp/${archive}"
|
|
|
|
echo "Latest Trace Compass: version=${version}, build=${build}"
|
|
|
|
base32_hash=$(nix-prefetch-url --type sha256 "$url")
|
|
hash=$(nix hash to-sri --type sha256 "$base32_hash")
|
|
|
|
update-source-version tracecompass "$version" "$hash" \
|
|
--file=pkgs/by-name/tr/tracecompass/package.nix \
|
|
--ignore-same-version
|
|
|
|
sed -i -E "0,/buildId = \"[^\"]+\";/s//buildId = \"$build\";/" pkgs/by-name/tr/tracecompass/package.nix
|
|
|
|
echo "Updated tracecompass to $version ($build)"
|