Merge pull request #282445 from lelgenio/protoc-gen-dart-update

protoc-gen-dart: add passthru.updateScript
This commit is contained in:
Peder Bergebakken Sundt 2024-06-24 13:54:17 +02:00 committed by GitHub
commit 5c33cba26b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 35 additions and 0 deletions

View File

@ -17,6 +17,8 @@ buildDartApplication rec {
pubspecLock = lib.importJSON ./pubspec.lock.json;
passthru.updateScript = ./update.sh;
meta = with lib; {
description = "Protobuf plugin for generating Dart code";
mainProgram = "protoc-gen-dart";

View File

@ -0,0 +1,33 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p yq ripgrep common-updater-scripts dart
set -xeu -o pipefail
PACKAGE_DIR="$(realpath "$(dirname "$0")")"
cd "$PACKAGE_DIR/.."
while ! test -f flake.nix; do cd .. ; done
NIXPKGS_DIR="$PWD"
version="$(
list-git-tags --url=https://github.com/google/protobuf.dart \
| rg '^protobuf-v(.*)' -r '$1' \
| sort --version-sort \
| tail -n1
)"
cd "$NIXPKGS_DIR"
update-source-version protoc-gen-dart "$version"
TMPDIR="$(mktemp -d)"
cd "$TMPDIR"
src="$(nix-build --no-link "$NIXPKGS_DIR" -A protoc-gen-dart.src)/protoc_plugin"
cp $src/pubspec.* .
if ! test -f pubspec.lock; then
dart pub update
fi
yq . pubspec.lock > "$PACKAGE_DIR/pubspec.lock.json"
rm -rf "$TMPDIR"