nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildGoModule,
4 fetchFromGitHub,
5 installShellFiles,
6 versionCheckHook,
7 nix-update-script,
8}:
9
10buildGoModule (finalAttrs: {
11 pname = "lazyworktree";
12 version = "1.28.0";
13
14 src = fetchFromGitHub {
15 owner = "chmouel";
16 repo = "lazyworktree";
17 tag = "v${finalAttrs.version}";
18 hash = "sha256-syfhjNsqRz9Gte514NcuP/J8NMGLEdsJrvnuqBHAnCc=";
19 };
20
21 vendorHash = "sha256-BfQWSogSoD0c71CPMqhfK7F+TzZQt6+wNIzPlFQ2zPU=";
22
23 nativeBuildInputs = [ installShellFiles ];
24
25 # Tests require git and are integration tests
26 doCheck = false;
27
28 ldflags = [
29 "-s"
30 "-w"
31 "-X main.version=${finalAttrs.version}"
32 ];
33
34 postInstall = ''
35 install -Dm444 shell/functions.shell -t $out/share/lazyworktree
36 installManPage lazyworktree.1
37 '';
38
39 doInstallCheck = true;
40 nativeInstallCheckInputs = [ versionCheckHook ];
41
42 passthru.updateScript = nix-update-script { };
43
44 meta = {
45 description = "BubbleTea-based Terminal User Interface for efficient Git worktree management";
46 homepage = "https://github.com/chmouel/lazyworktree";
47 changelog = "https://github.com/chmouel/lazyworktree/releases/tag/v${finalAttrs.version}";
48 license = lib.licenses.asl20;
49 maintainers = with lib.maintainers; [
50 chmouel
51 vdemeester
52 ];
53 mainProgram = "lazyworktree";
54 };
55})