feat(third_party/overlays): support unix domain sockets in evans

This applies a patch adding support for unix domain sockets to evans,
which was also sent upstream at
https://github.com/ktr0731/evans/pull/680.

Change-Id: I6e483ace45428a7526a200f885aa92c2de88b650
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9563
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: flokli <flokli@flokli.de>
This commit is contained in:
Florian Klink 2023-10-08 11:15:07 +02:00 committed by clbot
parent 09328c79d5
commit d1adefc9f9
2 changed files with 47 additions and 0 deletions

View file

@ -0,0 +1,39 @@
From 55d7e7af7c56f678eb817059417241bb61ee5181 Mon Sep 17 00:00:00 2001
From: Florian Klink <flokli@flokli.de>
Date: Sun, 8 Oct 2023 11:00:27 +0200
Subject: [PATCH] add support for unix domain sockets
grpc.NewClient already supports connecting to unix domain sockets, and
accepts a string anyways.
As a quick fix, detect the `address` starting with `unix://` and don't
add the port.
In the long term, we might want to deprecate `host` and `port` cmdline
args in favor of a single `address` arg.
---
mode/common.go | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/mode/common.go b/mode/common.go
index dfc7839..55f1e36 100644
--- a/mode/common.go
+++ b/mode/common.go
@@ -13,7 +13,13 @@ import (
)
func newGRPCClient(cfg *config.Config) (grpc.Client, error) {
- addr := fmt.Sprintf("%s:%s", cfg.Server.Host, cfg.Server.Port)
+ addr := cfg.Server.Host
+
+ // as long as the address doesn't start with unix, also add the port.
+ if !strings.HasPrefix(cfg.Server.Host, "unix://") {
+ addr = fmt.Sprintf("%s:%s", cfg.Server.Host, cfg.Server.Port)
+ }
+
if cfg.Request.Web {
//TODO: remove second arg
return grpc.NewWebClient(addr, cfg.Server.Reflection, false, "", "", "", grpc.Headers(cfg.Request.Header)), nil
--
2.42.0

View file

@ -125,4 +125,12 @@ depot.nix.readTree.drvTargets {
outputHash = "sha256-elEIWHxyY3iccprIcbQA6GWFiq/n5kozpGfw/OmoSIg=";
});
});
evans = super.evans.overrideAttrs (old: {
patches = old.patches or [ ] ++ [
# add support for unix domain sockets
# https://github.com/ktr0731/evans/pull/680
./patches/evans-add-support-for-unix-domain-sockets.patch
];
});
}