biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / development / tools / revive / default.nix
blob099bc7476c917194f3223c861c3a9ca0f841ee26
1 { buildGoModule, fetchFromGitHub, lib }:
3 buildGoModule rec {
4   pname = "revive";
5   version = "1.3.7";
7   src = fetchFromGitHub {
8     owner = "mgechev";
9     repo = pname;
10     rev = "v${version}";
11     sha256 = "sha256-Z5areIRlCyjUbusAdfL49mm5+J0UryWrS5/9Ttw16Po=";
12     # populate values that require us to use git. By doing this in postFetch we
13     # can delete .git afterwards and maintain better reproducibility of the src.
14     leaveDotGit = true;
15     postFetch = ''
16       date -u -d "@$(git -C $out log -1 --pretty=%ct)" "+%Y-%m-%d %H:%M UTC" > $out/DATE
17       git -C $out rev-parse HEAD > $out/COMMIT
18       rm -rf $out/.git
19     '';
20   };
21   vendorHash = "sha256-JYZdV6CefCB7/WzeZqUhIsK3PKo9KJG15dinN3S+1xw=";
23   ldflags = [
24     "-s"
25     "-w"
26     "-X github.com/mgechev/revive/cli.version=${version}"
27     "-X github.com/mgechev/revive/cli.builtBy=nix"
28   ];
30   # ldflags based on metadata from git and source
31   preBuild = ''
32     ldflags+=" -X github.com/mgechev/revive/cli.commit=$(cat COMMIT)"
33     ldflags+=" -X 'github.com/mgechev/revive/cli.date=$(cat DATE)'"
34   '';
36   # The following tests fail when built by nix:
37   #
38   # $ nix log /nix/store/build-revive.1.3.7.drv | grep FAIL
39   #
40   # --- FAIL: TestAll (0.01s)
41   # --- FAIL: TestTimeEqual (0.00s)
42   # --- FAIL: TestTimeNaming (0.00s)
43   # --- FAIL: TestUnhandledError (0.00s)
44   # --- FAIL: TestUnhandledErrorWithBlacklist (0.00s)
45   doCheck = false;
47   meta = with lib; {
48     description = "Fast, configurable, extensible, flexible, and beautiful linter for Go";
49     mainProgram = "revive";
50     homepage = "https://revive.run";
51     license = licenses.mit;
52     maintainers = with maintainers; [ maaslalani ];
53   };