24 lines
633 B
Nix
24 lines
633 B
Nix
{ buildGoModule, pkgs }:
|
|
let
|
|
gcloud-wrapper = buildGoModule {
|
|
name = "gcloud-wrapper";
|
|
src = ./.;
|
|
vendorHash = null;
|
|
};
|
|
in
|
|
pkgs.symlinkJoin {
|
|
name = "google-cloud-sdk-wrapped";
|
|
paths = [ pkgs.google-cloud-sdk ];
|
|
nativeBuildInputs = [ pkgs.makeWrapper ];
|
|
postBuild = ''
|
|
# Remove the original gcloud symlink
|
|
rm $out/bin/gcloud
|
|
|
|
# Create a shell wrapper called gcloud-wrapped that executes the real gcloud
|
|
makeWrapper ${pkgs.google-cloud-sdk}/bin/gcloud $out/bin/gcloud-wrapped
|
|
|
|
# Replace gcloud with our caching wrapper
|
|
ln -s ${gcloud-wrapper}/bin/gcloud-wrapper $out/bin/gcloud
|
|
'';
|
|
}
|