45 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  buildGoModule,
 | 
						|
  cacert,
 | 
						|
  go,
 | 
						|
  lib,
 | 
						|
  stdenv,
 | 
						|
  xcaddy,
 | 
						|
  caddy,
 | 
						|
}:
 | 
						|
caddy.override {
 | 
						|
  buildGoModule = args:
 | 
						|
    buildGoModule (args
 | 
						|
      // {
 | 
						|
        src = stdenv.mkDerivation rec {
 | 
						|
          pname = "caddy-using-xcaddy-${xcaddy.version}";
 | 
						|
          inherit (caddy) version;
 | 
						|
          dontUnpack = true;
 | 
						|
          dontFixup = true;
 | 
						|
          nativeBuildInputs = [cacert go];
 | 
						|
          plugins = [
 | 
						|
            "github.com/WeidiDeng/caddy-cloudflare-ip"
 | 
						|
          ];
 | 
						|
          configurePhase = ''
 | 
						|
            export GOCACHE=$TMPDIR/go-cache
 | 
						|
            export GOPATH="$TMPDIR/go"
 | 
						|
            export XCADDY_SKIP_BUILD=1
 | 
						|
          '';
 | 
						|
          buildPhase = ''
 | 
						|
            ${xcaddy}/bin/xcaddy build "${caddy.src.rev}" ${
 | 
						|
              lib.concatMapStringsSep " " (plugin: "--with ${plugin}") plugins
 | 
						|
            }
 | 
						|
            cd buildenv*
 | 
						|
            go mod vendor
 | 
						|
          '';
 | 
						|
          installPhase = ''
 | 
						|
            cp -r --reflink=auto . $out
 | 
						|
          '';
 | 
						|
          outputHash = "sha256-7FlCaHLuyESq+0YAkud7y83hY4oow7omJPTVVweEnJI=";
 | 
						|
          outputHashMode = "recursive";
 | 
						|
        };
 | 
						|
        subPackages = ["."];
 | 
						|
        ldflags = ["-s" "-w"];
 | 
						|
        vendorHash = null;
 | 
						|
      });
 | 
						|
}
 |