1{
2 lib,
3 stdenv,
4 buildGoModule,
5 fetchFromGitHub,
6 installShellFiles,
7 versionCheckHook,
8 nix-update-script,
9}:
10
11buildGoModule rec {
12 pname = "gocatcli";
13 version = "1.1.2";
14
15 src = fetchFromGitHub {
16 owner = "deadc0de6";
17 repo = "gocatcli";
18 tag = "v${version}";
19 hash = "sha256-kNXuQlBLiDEbKwtSmdX4XPLyMZFyBvLKEmQdCDug4ao=";
20 };
21
22 vendorHash = "sha256-gi4/ekLGh5T5D3ifW/FF+ewHesWOyhY01ZZIG6+OENo=";
23
24 nativeBuildInputs = [ installShellFiles ];
25
26 postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
27 installShellCompletion --cmd gocatcli \
28 --bash <($out/bin/gocatcli completion bash) \
29 --fish <($out/bin/gocatcli completion fish) \
30 --zsh <($out/bin/gocatcli completion zsh)
31 '';
32
33 nativeCheckInputs = [ versionCheckHook ];
34 doCheck = true;
35
36 passthru.updateScript = nix-update-script { };
37
38 meta = {
39 homepage = "https://github.com/deadc0de6/gocatcli";
40 changelog = "https://github.com/deadc0de6/gocatcli/releases/tag/v${version}";
41 description = "Command line catalog tool for your offline data";
42 longDescription = ''
43 gocatcli is a catalog tool for your offline data. It indexes external
44 media in a catalog file and allows to quickly find specific files or even
45 navigate in the catalog as if it was a mounted drive
46 '';
47 license = lib.licenses.gpl3Only;
48 maintainers = with lib.maintainers; [
49 nadir-ishiguro
50 ];
51 mainProgram = "gocatcli";
52 };
53}