buildDartApplication: Generate Dart wrapper with symlinkJoin

This commit is contained in:
hacker1024 2023-10-28 21:52:36 +11:00
parent f36961c0bd
commit bc82281e01

View File

@ -1,4 +1,4 @@
{ lib, stdenv, callPackage, fetchDartDeps, runCommand, writeText, dartHooks, makeWrapper, dart, cacert, nodejs, darwin, jq }:
{ lib, stdenv, callPackage, fetchDartDeps, writeText, symlinkJoin, dartHooks, makeWrapper, dart, cacert, nodejs, darwin, jq }:
{ sdkSetupScript ? ""
, pubGetScript ? "dart pub get"
@ -36,11 +36,15 @@
let
dartDeps = (fetchDartDeps.override {
dart = runCommand "dart-fod" { nativeBuildInputs = [ makeWrapper ]; } ''
mkdir -p "$out/bin"
makeWrapper "${dart}/bin/dart" "$out/bin/dart" \
--add-flags "--root-certs-file=${cacert}/etc/ssl/certs/ca-bundle.crt"
'';
dart = symlinkJoin {
name = "dart-fod";
paths = [ dart ];
nativeBuildInputs = [ makeWrapper ];
postBuild = ''
wrapProgram "$out/bin/dart" \
--add-flags "--root-certs-file=${cacert}/etc/ssl/certs/ca-bundle.crt"
'';
};
}) {
buildDrvArgs = args;
inherit sdkSetupScript pubGetScript vendorHash pubspecLockFile;