1{ lib
2, buildGoModule
3, fetchFromGitHub
4, makeWrapper
5, mercurial
6, git
7, openssh
8, nixosTests
9, fetchpatch
10}:
11
12buildGoModule rec {
13 pname = "hound";
14 version = "0.7.1";
15
16 src = fetchFromGitHub {
17 owner = "hound-search";
18 repo = "hound";
19 rev = "v${version}";
20 sha256 = "sha256-Qdk57zLjTXLdDEmB6K+sZAym5s0BekJJa/CpYeOBOcY=";
21 };
22
23 patches = [
24 # add check config flag
25 # https://github.com/hound-search/hound/pull/485/files
26 (fetchpatch {
27 url = "https://github.com/MarcelCoding/hound/commit/b2f1cef335eff235394de336593687236a3b88bb.patch";
28 hash = "sha256-3+EBvnA8JIx2P6YM+8LpojDIX7hNXJ0vwVN4oSAouZ4=";
29 })
30 (fetchpatch {
31 url = "https://github.com/MarcelCoding/hound/commit/f917a457570ad8659d02fca4311cc91cadcadc00.patch";
32 hash = "sha256-CGvcIoSbgiayli5B8JRjvGfLuH2fscNpNTEm7xwkfpo=";
33 })
34 ];
35
36 vendorHash = "sha256-0psvz4bnhGuwwSAXvQp0ju0GebxoUyY2Rjp/D43KF78=";
37
38 nativeBuildInputs = [ makeWrapper ];
39
40 # requires network access
41 doCheck = false;
42
43 postInstall = ''
44 wrapProgram $out/bin/houndd --prefix PATH : ${lib.makeBinPath [ mercurial git openssh ]}
45 '';
46
47 passthru.tests = { inherit (nixosTests) hound; };
48
49 meta = with lib; {
50 description = "Lightning fast code searching made easy";
51 homepage = "https://github.com/hound-search/hound";
52 license = licenses.mit;
53 maintainers = with maintainers; [ grahamc SuperSandro2000 ];
54 };
55}