diff options
author | Berk D. Demir <bdd@mindcast.org> | 2022-05-01 23:15:08 +0000 |
---|---|---|
committer | Berk D. Demir <bdd@mindcast.org> | 2022-05-02 14:35:07 +0000 |
commit | 99786f9a57a2a9a0ac680550af645dfcdbc7da29 (patch) | |
tree | 9790a257dcde65e60d06d35417135d136bc03c9b | |
parent | 12bd815a0ca1a15c15776a6c98842d5ffbec8740 (diff) | |
download | nixpkgs-99786f9a57a2a9a0ac680550af645dfcdbc7da29.tar nixpkgs-99786f9a57a2a9a0ac680550af645dfcdbc7da29.tar.gz nixpkgs-99786f9a57a2a9a0ac680550af645dfcdbc7da29.tar.bz2 nixpkgs-99786f9a57a2a9a0ac680550af645dfcdbc7da29.tar.lz nixpkgs-99786f9a57a2a9a0ac680550af645dfcdbc7da29.tar.xz nixpkgs-99786f9a57a2a9a0ac680550af645dfcdbc7da29.tar.zst nixpkgs-99786f9a57a2a9a0ac680550af645dfcdbc7da29.zip |
go-modules/packages: Improve `checkFlags` handling
- Fix handling of `checkFlags` derivation attribute when it's a list of two or more elements. - Improve the readability go `buildGoDir` function with flag array building and "test" command conditional. - Bash style: Single line local assignment of positional parameters.
-rw-r--r-- | pkgs/development/go-modules/generic/default.nix | 20 | ||||
-rw-r--r-- | pkgs/development/go-packages/generic/default.nix | 20 |
2 files changed, 30 insertions, 10 deletions
diff --git a/pkgs/development/go-modules/generic/default.nix b/pkgs/development/go-modules/generic/default.nix index 502a981596e..7493eac59dc 100644 --- a/pkgs/development/go-modules/generic/default.nix +++ b/pkgs/development/go-modules/generic/default.nix @@ -181,12 +181,22 @@ let exclude+='\)' buildGoDir() { - local d; local cmd; - cmd="$1" - d="$2" + local cmd="$1" dir="$2" + . $TMPDIR/buildFlagsArray + + declare -a flags + flags+=($buildFlags "''${buildFlagsArray[@]}") + flags+=(''${tags:+-tags=${lib.concatStringsSep "," tags}}) + flags+=(''${ldflags:+-ldflags="$ldflags"}) + flags+=("-v" "-p" "$NIX_BUILD_CORES") + + if [ "$cmd" = "test" ]; then + flags+=($checkFlags) + fi + local OUT - if ! OUT="$(go $cmd $buildFlags "''${buildFlagsArray[@]}" ''${tags:+-tags=${lib.concatStringsSep "," tags}} ''${ldflags:+-ldflags="$ldflags"} -v -p $NIX_BUILD_CORES $d 2>&1)"; then + if ! OUT="$(go $cmd "''${flags[@]}" $dir 2>&1)"; then if ! echo "$OUT" | grep -qE '(no( buildable| non-test)?|build constraints exclude all) Go (source )?files'; then echo "$OUT" >&2 return 1 @@ -244,7 +254,7 @@ let runHook preCheck for pkg in $(getGoDirs test); do - buildGoDir test $checkFlags "$pkg" + buildGoDir test "$pkg" done runHook postCheck diff --git a/pkgs/development/go-packages/generic/default.nix b/pkgs/development/go-packages/generic/default.nix index 0559f7f07a7..643c1955d2b 100644 --- a/pkgs/development/go-packages/generic/default.nix +++ b/pkgs/development/go-packages/generic/default.nix @@ -160,12 +160,22 @@ let exclude+='\)' buildGoDir() { - local d; local cmd; - cmd="$1" - d="$2" + local cmd="$1" dir="$2" + . $TMPDIR/buildFlagsArray + + declare -a flags + flags+=($buildFlags "''${buildFlagsArray[@]}") + flags+=(''${tags:+-tags=${lib.concatStringsSep "," tags}}) + flags+=(''${ldflags:+-ldflags="$ldflags"}) + flags+=("-v" "-p" "$NIX_BUILD_CORES") + + if [ "$cmd" = "test" ]; then + flags+=($checkFlags) + fi + local OUT - if ! OUT="$(go $cmd $buildFlags "''${buildFlagsArray[@]}" ''${tags:+-tags=${lib.concatStringsSep "," tags}} ''${ldflags:+-ldflags="$ldflags"} -v -p $NIX_BUILD_CORES $d 2>&1)"; then + if ! OUT="$(go $cmd "''${flags[@]}" $dir 2>&1)"; then if ! echo "$OUT" | grep -qE '(no( buildable| non-test)?|build constraints exclude all) Go (source )?files'; then echo "$OUT" >&2 return 1 @@ -225,7 +235,7 @@ let runHook preCheck for pkg in $(getGoDirs test); do - buildGoDir test $checkFlags "$pkg" + buildGoDir test "$pkg" done runHook postCheck |