about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/build-support/dart/list-dart-deps/default.nix28
1 files changed, 28 insertions, 0 deletions
diff --git a/pkgs/build-support/dart/list-dart-deps/default.nix b/pkgs/build-support/dart/list-dart-deps/default.nix
new file mode 100644
index 0000000000000..5cafd7773d452
--- /dev/null
+++ b/pkgs/build-support/dart/list-dart-deps/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, dart
+, jq
+}:
+deps:
+
+builtins.fromJSON (builtins.readFile (stdenv.mkDerivation {
+  name = "${deps.name}-list.json";
+  nativeBuildInputs = [ deps dart jq ];
+
+  unpackPhase = ''
+    runHook preUnpack
+    ln -s "${deps.files}"/pubspec/* .
+    runHook postUnpack
+  '';
+
+  configurePhase = ''
+    runHook preConfigure
+    dart pub get --offline
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+    dart pub deps --json | jq .packages > $out
+    runHook postBuild
+  '';
+}))