summary refs log tree commit diff
path: root/pkgs/development/go-modules
diff options
context:
space:
mode:
authorColin L Rice <colin@daedrum.net>2020-06-03 22:54:39 -0400
committerColin L Rice <colin@daedrum.net>2020-07-28 21:11:28 -0400
commit95be7b25be151b6186eb1f8641458f175cc45e84 (patch)
treef74b7fcf337c7050b271ac879c40714ece7e24dc /pkgs/development/go-modules
parent148138e9de76eccbc7fb30c61914574e8188267b (diff)
downloadnixpkgs-95be7b25be151b6186eb1f8641458f175cc45e84.tar
nixpkgs-95be7b25be151b6186eb1f8641458f175cc45e84.tar.gz
nixpkgs-95be7b25be151b6186eb1f8641458f175cc45e84.tar.bz2
nixpkgs-95be7b25be151b6186eb1f8641458f175cc45e84.tar.lz
nixpkgs-95be7b25be151b6186eb1f8641458f175cc45e84.tar.xz
nixpkgs-95be7b25be151b6186eb1f8641458f175cc45e84.tar.zst
nixpkgs-95be7b25be151b6186eb1f8641458f175cc45e84.zip
go-modules: Add useVend flag to go-modules
Diffstat (limited to 'pkgs/development/go-modules')
-rw-r--r--pkgs/development/go-modules/generic/default.nix15
1 files changed, 13 insertions, 2 deletions
diff --git a/pkgs/development/go-modules/generic/default.nix b/pkgs/development/go-modules/generic/default.nix
index a478871bd9a..68a4fe8dd6a 100644
--- a/pkgs/development/go-modules/generic/default.nix
+++ b/pkgs/development/go-modules/generic/default.nix
@@ -1,4 +1,4 @@
-{ go, cacert, git, lib, removeReferencesTo, stdenv }:
+{ go, cacert, git, lib, removeReferencesTo, stdenv, vend }:
 
 { name ? "${args'.pname}-${args'.version}"
 , src
@@ -20,6 +20,9 @@
 , vendorSha256
 # Whether to delete the vendor folder supplied with the source.
 , deleteVendor ? false
+# Whether to run the vend tool to regenerate the vendor directory.
+# This is useful if any dependency contain C files.
+, runVend ? false
 
 , modSha256 ? null
 
@@ -48,6 +51,8 @@ let
 
   deleteFlag = if deleteVendor then "true" else "false";
 
+  vendCommand = if runVend then "${vend}/bin/vend" else "false";
+
   go-modules = if vendorSha256 != null then go.stdenv.mkDerivation (let modArgs = {
 
     name = "${name}-go-modules";
@@ -87,7 +92,13 @@ let
         echo "vendor folder exists, please set 'vendorSha256=null;' or 'deleteVendor=true;' in your expression"
         exit 10
       fi
-      go mod vendor
+
+      if [ ${vendCommand} != "false" ]; then
+        echo running vend to rewrite vendor folder
+        ${vendCommand}
+      else
+        go mod vendor
+      fi
       mkdir -p vendor
 
       runHook postBuild