From 1321d086fa38d8cee4a458fbfb9bb9be4ecd13b9 Mon Sep 17 00:00:00 2001 From: Maas Lalani Date: Tue, 7 Jun 2022 17:41:37 -0400 Subject: [PATCH] revive: init at 1.2.1 --- pkgs/development/tools/revive/default.nix | 53 +++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 4 ++ 2 files changed, 57 insertions(+) create mode 100644 pkgs/development/tools/revive/default.nix diff --git a/pkgs/development/tools/revive/default.nix b/pkgs/development/tools/revive/default.nix new file mode 100644 index 000000000000..56ef62ce1346 --- /dev/null +++ b/pkgs/development/tools/revive/default.nix @@ -0,0 +1,53 @@ +{ buildGoModule, fetchFromGitHub, lib }: + +buildGoModule rec { + pname = "revive"; + version = "1.2.1"; + + src = fetchFromGitHub { + owner = "mgechev"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-xZakVuw+QKzFh6wsnZbltLEEwyb9WcMvVWEzKnS9aWc="; + # populate values that require us to use git. By doing this in postFetch we + # can delete .git afterwards and maintain better reproducibility of the src. + leaveDotGit = true; + postFetch = '' + date -u -d "@$(git -C $out log -1 --pretty=%ct)" "+%Y-%m-%d %H:%M UTC" > $out/DATE + git -C $out rev-parse HEAD > $out/COMMIT + rm -rf $out/.git + ''; + }; + vendorSha256 = "sha256-Fpl5i+qMvJ/CDh8X0gps9C/BxF7/Uvln+3DpVOXE0WQ="; + + ldflags = [ + "-s" + "-w" + "-X github.com/mgechev/revive/cli.version=${version}" + "-X github.com/mgechev/revive/cli.builtBy=nix" + ]; + + # ldflags based on metadata from git and source + preBuild = '' + ldflags+=" -X github.com/mgechev/revive/cli.commit=$(cat COMMIT)" + ldflags+=" -X 'github.com/mgechev/revive/cli.date=$(cat DATE)'" + ''; + + # The following tests fail when built by nix: + # + # $ nix log /nix/store/build-revive.1.2.1.drv | grep FAIL + # + # --- FAIL: TestAll (0.01s) + # --- FAIL: TestTimeEqual (0.00s) + # --- FAIL: TestTimeNaming (0.00s) + # --- FAIL: TestUnhandledError (0.00s) + # --- FAIL: TestUnhandledErrorWithBlacklist (0.00s) + doCheck = false; + + meta = with lib; { + description = "Fast, configurable, extensible, flexible, and beautiful linter for Go"; + homepage = "https://revive.run"; + license = licenses.mit; + maintainers = with maintainers; [ maaslalani ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 233ae5c9a2bd..d63cbdc145d5 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -16295,6 +16295,10 @@ with pkgs; reviewdog = callPackage ../development/tools/misc/reviewdog { }; + revive = callPackage ../development/tools/revive { + buildGoModule = buildGo118Module; + }; + rman = callPackage ../development/tools/misc/rman { }; rnix-lsp = callPackage ../development/tools/rnix-lsp { };