btrbk: add mainProgram (#356350)
[NixPkgs.git] / pkgs / by-name / dn / dnscontrol / package.nix
blobd865e1adaee00a3102b797c66e2f02cd5ff4d60b
1 { lib, buildGoModule, fetchFromGitHub, installShellFiles, testers, dnscontrol }:
3 buildGoModule rec {
4   pname = "dnscontrol";
5   version = "4.14.3";
7   src = fetchFromGitHub {
8     owner = "StackExchange";
9     repo = "dnscontrol";
10     rev = "v${version}";
11     hash = "sha256-FDxNJ6pOigasulxtAAnvHfWHQ3Ji459IQScA4dld9KQ=";
12   };
14   vendorHash = "sha256-aqS5esDroGg83NJygX8tW8P0U4YCkll98KmAfya6lKM=";
16   nativeBuildInputs = [ installShellFiles ];
18   subPackages = [ "." ];
20   ldflags = [ "-s" "-w" "-X=main.version=${version}" ];
22   postInstall = ''
23     installShellCompletion --cmd dnscontrol \
24       --bash <($out/bin/dnscontrol shell-completion bash) \
25       --zsh <($out/bin/dnscontrol shell-completion zsh)
26   '';
28   preCheck = ''
29     # requires network
30     rm pkg/spflib/flatten_test.go pkg/spflib/parse_test.go
31   '';
33   passthru.tests = {
34     version = testers.testVersion {
35       command = "${lib.getExe dnscontrol} version";
36       package = dnscontrol;
37     };
38   };
40   meta = with lib; {
41     description = "Synchronize your DNS to multiple providers from a simple DSL";
42     homepage = "https://dnscontrol.org/";
43     changelog = "https://github.com/StackExchange/dnscontrol/releases/tag/${src.rev}";
44     license = licenses.mit;
45     maintainers = with maintainers; [ SuperSandro2000 ];
46     mainProgram = "dnscontrol";
47   };