default.nix (633B) - Raw
1 { buildGoModule, pkgs }: 2 let 3 gcloud-wrapper = buildGoModule { 4 name = "gcloud-wrapper"; 5 src = ./.; 6 vendorHash = null; 7 }; 8 in 9 pkgs.symlinkJoin { 10 name = "google-cloud-sdk-wrapped"; 11 paths = [ pkgs.google-cloud-sdk ]; 12 nativeBuildInputs = [ pkgs.makeWrapper ]; 13 postBuild = '' 14 # Remove the original gcloud symlink 15 rm $out/bin/gcloud 16 17 # Create a shell wrapper called gcloud-wrapped that executes the real gcloud 18 makeWrapper ${pkgs.google-cloud-sdk}/bin/gcloud $out/bin/gcloud-wrapped 19 20 # Replace gcloud with our caching wrapper 21 ln -s ${gcloud-wrapper}/bin/gcloud-wrapper $out/bin/gcloud 22 ''; 23 }