Files
config/pkgs/gcloud-wrapped/default.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
'';
}