131 lines
3.0 KiB
Nix
131 lines
3.0 KiB
Nix
{
|
|
lib,
|
|
buildGoModule,
|
|
fetchFromGitHub,
|
|
plugins ? [],
|
|
vendorHash ? "",
|
|
pkgs, ...
|
|
}:
|
|
# let
|
|
let config.nix.settings.sandbox = false;
|
|
in with lib;
|
|
#############
|
|
pkgs.stdenv.mkDerivation rec {
|
|
pname = "caddy";
|
|
# getExe = lib.getExe caddy "$out/bin/caddy";
|
|
# meta.mainProgram = "$out/bin/caddy";
|
|
meta.mainProgram = "caddy";
|
|
# https://github.com/NixOS/nixpkgs/issues/113520
|
|
# version = "v2.7.4";
|
|
version = "v2.8.4";
|
|
dontUnpack = true;
|
|
|
|
nativeBuildInputs = with pkgs; [ git go_1_23 xcaddy ];
|
|
|
|
configurePhase = ''
|
|
export GOCACHE=$TMPDIR/go-cache
|
|
export GOPATH="$TMPDIR/go"
|
|
# export GOPROXY=direct
|
|
'';
|
|
|
|
buildPhase = let
|
|
pluginArgs = lib.concatMapStringsSep " " (plugin: "--with ${plugin}") plugins;
|
|
in ''
|
|
runHook preBuild
|
|
pwd && ls -lah
|
|
# go get github.com/caddyserver/caddy/v2@2.7.4
|
|
# go mod tidy
|
|
# export GOPROXY=direct
|
|
runHook build
|
|
#done=0
|
|
#until `[[ $done -eq 1 ]]`; do sleep 1; ${pkgs.xcaddy}/bin/xcaddy build ${version} ${pluginArgs} && done=1; done
|
|
${pkgs.xcaddy}/bin/xcaddy build ${version} ${pluginArgs}
|
|
runHook postBuild
|
|
'';
|
|
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
mkdir -p $out/bin
|
|
mv caddy $out/bin
|
|
runHook postInstall
|
|
'';
|
|
}
|
|
#############
|
|
#let
|
|
# imports = flip concatMapStrings plugins (pkg: "\t_ \"${pkg}\"\n");
|
|
#
|
|
# main = ''
|
|
# package main
|
|
#
|
|
# import (
|
|
# caddycmd "github.com/caddyserver/caddy/v2/cmd"
|
|
#
|
|
# ${imports}
|
|
# _ "github.com/caddyserver/caddy/v2/modules/standard"
|
|
# )
|
|
#
|
|
# func main() {
|
|
# caddycmd.Main()
|
|
# }
|
|
# '';
|
|
#in
|
|
#
|
|
# pkgs.buildGo121Module rec {
|
|
# pname = "caddy";
|
|
# version = "2.7.4";
|
|
# # version = "latest";
|
|
#
|
|
# subPackages = ["cmd/caddy"];
|
|
# ldflags = [
|
|
# "-s -w"
|
|
# ];
|
|
#
|
|
# src = fetchFromGitHub {
|
|
# owner = "caddyserver";
|
|
# repo = pname;
|
|
# rev = "v${version}";
|
|
# sha256 = "sha256-oZSAY7vS8ersnj3vUtxj/qKlLvNvNL2RQHrNr4Cc60k=";
|
|
# };
|
|
#
|
|
# # inherit vendorHash;
|
|
# vendorHash = "sha256-JL3AYb3/2Zz94/OVk9mXe0AeHmtDkXROEtZnNJ4rqK8=";
|
|
# proxyVendor = false;
|
|
#
|
|
# overrideModAttrs = _: {
|
|
# preBuild = "echo '${main}' > cmd/caddy/main.go && go get github.com/caddyserver/caddy/v2@v2.7.4 && go mod tidy";
|
|
# postInstall = ''
|
|
# cp go.sum go.mod $out/
|
|
# ls $out/
|
|
# '';
|
|
# };
|
|
#
|
|
# postPatch = ''
|
|
# echo '${main}' > cmd/caddy/main.go
|
|
# cat cmd/caddy/main.go
|
|
# '';
|
|
#
|
|
# #configurePhase = ''
|
|
# # export GOCACHE=$TMPDIR/go-cache
|
|
# # export GOPATH="$TMPDIR/go"
|
|
# # # go get github.com/caddyserver/caddy/v2@2.7.4
|
|
# #'';
|
|
# postConfigure = ''
|
|
# # go get github.com/caddyserver/caddy/v2@2.7.4
|
|
# # go mod vendor
|
|
# cp vendor/go.sum ./
|
|
# cp vendor/go.mod ./
|
|
# '';
|
|
# #postConfigure = ''
|
|
# # cp vendor/go.sum ./
|
|
# # cp vendor/go.mod ./
|
|
# #'';
|
|
#
|
|
# meta = with lib; {
|
|
# homepage = https://caddyserver.com;
|
|
# description = "Fast, cross-platform HTTP/2 web server with automatic HTTPS";
|
|
# license = licenses.asl20;
|
|
# maintainers = with maintainers; [rushmorem fpletz zimbatm];
|
|
# };
|
|
# }
|