lol
1{
2 lib,
3 buildGoModule,
4 fetchFromGitHub,
5 pkg-config,
6 protobuf,
7 protoc-gen-go,
8 protoc-gen-go-grpc,
9 vectorscan,
10}:
11
12buildGoModule rec {
13 pname = "secretscanner";
14 version = "1.2.0";
15
16 src = fetchFromGitHub {
17 owner = "deepfence";
18 repo = "SecretScanner";
19 tag = "v${version}";
20 fetchSubmodules = true;
21 hash = "sha256-lTUZLuEiC9xpHYWn3uv4ZtbvHX6ETsjxacjd/O0kU8I=";
22 };
23
24 vendorHash = "sha256-lB+fiSdflIYGw0hMN0a9IOtRcJwYEUPQqaeU7mAfSQs=";
25
26 excludedPackages = [
27 "./agent-plugins-grpc/proto" # No need to build submodules
28 ];
29
30 nativeBuildInputs = [
31 pkg-config
32 protobuf
33 protoc-gen-go
34 protoc-gen-go-grpc
35 ];
36
37 buildInputs = [
38 vectorscan
39 ];
40
41 preBuild = ''
42 # Compile proto files
43 make -C agent-plugins-grpc go
44 '';
45
46 postInstall = ''
47 mv $out/bin/SecretScanner $out/bin/$pname
48 '';
49
50 meta = {
51 description = "Tool to find secrets and passwords in container images and file systems";
52 mainProgram = "secretscanner";
53 homepage = "https://github.com/deepfence/SecretScanner";
54 changelog = "https://github.com/deepfence/SecretScanner/releases/tag/v${version}";
55 platforms = [
56 "x86_64-linux"
57 "aarch64-linux"
58 ];
59 license = with lib.licenses; [ mit ];
60 maintainers = with lib.maintainers; [ fab ];
61 };
62}