btrbk: add mainProgram (#356350)
[NixPkgs.git] / pkgs / by-name / st / stern / package.nix
blobb12003f8008ad2dfbc62c56e3a2aa6694d67d590
2   buildGoModule,
3   buildPackages,
4   fetchFromGitHub,
5   installShellFiles,
6   lib,
7   stdenv,
8   stern,
9   testers,
12 buildGoModule rec {
13   pname = "stern";
14   version = "1.31.0";
16   src = fetchFromGitHub {
17     owner = "stern";
18     repo = "stern";
19     rev = "v${version}";
20     hash = "sha256-1jwjd9enO2rQnC+04brzfJKSutnkWLMPyZD0wAqHBfg=";
21   };
23   vendorHash = "sha256-IBOkx+y7EFQeQ0sumXiVRqKqHts4SOxB138Uz644cnc=";
25   subPackages = [ "." ];
27   ldflags = [
28     "-s"
29     "-w"
30     "-X github.com/stern/stern/cmd.version=${version}"
31   ];
33   nativeBuildInputs = [ installShellFiles ];
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     '';
46   passthru.tests.version = testers.testVersion {
47     package = stern;
48   };
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   };