biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / by-name / go / godns / package.nix
blob164c90f05fc4d0f461b8a14de1805e2c7441b7ec
1 { lib
2 , buildGoModule
3 , fetchFromGitHub
4 , nodejs
5 , npmHooks
6 , fetchNpmDeps
7 , nix-update-script
8 }:
10 buildGoModule rec {
11   pname = "godns";
12   version = "3.1.8";
14   src = fetchFromGitHub {
15     owner = "TimothyYe";
16     repo = "godns";
17     rev = "refs/tags/v${version}";
18     hash = "sha256-a8qa8dlFn0+mE2SeDJPZ0OI4EkA/GGFYxkNQE5yKjvM=";
19   };
21   vendorHash = "sha256-ui7GiLR5um8TGrVS+MCXzop1tkeysxBYFrD2Fh0tnBI=";
22   npmDeps = fetchNpmDeps {
23     src = "${src}/web";
24     hash = "sha256-oPE69+R66r1LpryAu3ImKKRVDrzXAiDpeCwdQKRmVj0=";
25   };
27   npmRoot = "web";
28   nativeBuildInputs = [
29     nodejs
30     npmHooks.npmConfigHook
31   ];
33   overrideModAttrs = oldAttrs: {
34     # Do not add `npmConfigHook` to `goModules`
35     nativeBuildInputs = lib.remove npmHooks.npmConfigHook oldAttrs.nativeBuildInputs;
36     # Do not run `preBuild` when building `goModules`
37     preBuild = null;
38   };
40   # Some tests require internet access, broken in sandbox
41   doCheck = false;
43   preBuild = ''
44     npm --prefix="$npmRoot" run build
45     go generate ./...
46   '';
48   ldflags = [
49     "-s"
50     "-w"
51     "-X main.Version=${version}"
52   ];
54   passthru.updateScript = nix-update-script { };
56   meta = with lib; {
57     description = "Dynamic DNS client tool supports AliDNS, Cloudflare, Google Domains, DNSPod, HE.net & DuckDNS & DreamHost, etc";
58     homepage = "https://github.com/TimothyYe/godns";
59     changelog = "https://github.com/TimothyYe/godns/releases/tag/v${version}";
60     license = licenses.asl20;
61     maintainers = with maintainers; [ yinfeng ];
62     mainProgram = "godns";
63   };