zed/nix/livekit-libwebrtc/update.sh
Jakub Konka 5856bd4ebc
nix: Vendor up-to-date libwebrtc until patched upstream in NixOS (#50352)
Follow-up to #50205

Release Notes:

- N/A

Co-authored-by: Neel Chotai <neel@zed.dev>
Co-authored-by: Josh Robson Chase <josh@robsonchase.com>
2026-02-27 22:43:31 +01:00

33 lines
1.4 KiB
Bash

#!/usr/bin/env nix-shell
#!nix-shell -i bash -p gitMinimal curl gojq gclient2nix
set -eou pipefail
package="livekit-libwebrtc"
pkg_dir="$(dirname "$0")"
nixpkgs="$(git rev-parse --show-toplevel)"
gh-curl () {
curl --silent ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} "$1"
}
# Get the current version part before the "-unstable-" for the branch name.
# To manually update to a new major version, you can also invoke the script
# with the new major version, e.g., UPDATE_MAJOR_VERSION=137.
old_version="${UPDATE_NIX_OLD_VERSION:-$(nix-instantiate --eval -E "(import \"$nixpkgs\" { }).$package.version" | tr -d '"')}"
major_version="${UPDATE_MAJOR_VERSION:-${old_version%%-unstable-*}}"
branch="m${major_version}_release"
# Fetch the current HEAD commit of the release branch
head="$(gh-curl "https://api.github.com/repos/webrtc-sdk/webrtc/git/refs/heads/$branch" | gojq '.object.sha' --raw-output)"
if gojq -e ".src.args.rev == \"$head\"" "$pkg_dir/sources.json"; then
echo "$package is already up-to-date: $head"
exit 0
fi
# Get the commit's date for the version field
date="$(gh-curl "https://api.github.com/repos/webrtc-sdk/webrtc/git/commits/$head" | gojq '.committer.date| split("T") | .[0]' --raw-output)"
echo "Updating sources.json to $head"
gclient2nix generate --root src "https://github.com/webrtc-sdk/webrtc@$head" > "$pkg_dir/sources.json"
sed -i "s|$old_version|$major_version-unstable-$date|g" "$pkg_dir/package.nix"