lol
1{
2 buildGoModule,
3 buildPackages,
4 fetchFromGitHub,
5 installShellFiles,
6 lib,
7 stdenv,
8 stern,
9 testers,
10}:
11
12buildGoModule rec {
13 pname = "stern";
14 version = "1.33.0";
15
16 src = fetchFromGitHub {
17 owner = "stern";
18 repo = "stern";
19 rev = "v${version}";
20 hash = "sha256-JMtdjsXUOf75Djva0qdHUGM16OuWoTLjshDz4LAfllQ=";
21 };
22
23 vendorHash = "sha256-xDkYW542V2M9CvjNBFojRw4KAhcxvlBPVJCndlF+MKw=";
24
25 subPackages = [ "." ];
26
27 ldflags = [
28 "-s"
29 "-w"
30 "-X github.com/stern/stern/cmd.version=${version}"
31 ];
32
33 nativeBuildInputs = [ installShellFiles ];
34
35 postInstall =
36 let
37 stern = if stdenv.buildPlatform.canExecute stdenv.hostPlatform then "$out" else buildPackages.stern;
38 in
39 ''
40 for shell in bash zsh fish; do
41 ${stern}/bin/stern --completion $shell > stern.$shell
42 installShellCompletion stern.$shell
43 done
44 '';
45
46 passthru.tests.version = testers.testVersion {
47 package = stern;
48 };
49
50 meta = {
51 description = "Multi pod and container log tailing for Kubernetes";
52 changelog = "https://github.com/stern/stern/releases/tag/v${version}";
53 homepage = "https://github.com/stern/stern";
54 license = lib.licenses.asl20;
55 mainProgram = "stern";
56 maintainers = with lib.maintainers; [
57 mbode
58 preisschild
59 ];
60 };
61}