signalbackup-tools: 20241220 -> 20250106 (#371523)
[NixPkgs.git] / pkgs / by-name / vh / vhs / package.nix
blobb68f95947b3b3361d2d98cc5a7ba6d19014b7826
2   lib,
3   stdenv,
4   buildGoModule,
5   installShellFiles,
6   fetchFromGitHub,
7   ffmpeg,
8   ttyd,
9   chromium,
10   makeWrapper,
13 buildGoModule rec {
14   pname = "vhs";
15   version = "0.8.0";
17   src = fetchFromGitHub {
18     owner = "charmbracelet";
19     repo = pname;
20     rev = "v${version}";
21     hash = "sha256-kUsh+jy4dXYW1uAUfFv/HKBqIIyVogLKUYNjBhIKlls=";
22   };
24   vendorHash = "sha256-1UBhiRemJ+dQNm20+8pbOJus5abvTwVcuzxNMzrniN8=";
26   nativeBuildInputs = [
27     installShellFiles
28     makeWrapper
29   ];
31   ldflags = [
32     "-s"
33     "-w"
34     "-X=main.Version=${version}"
35   ];
37   postInstall = ''
38     wrapProgram $out/bin/vhs --prefix PATH : ${
39       lib.makeBinPath (
40         lib.optionals stdenv.hostPlatform.isLinux [ chromium ]
41         ++ [
42           ffmpeg
43           ttyd
44         ]
45       )
46     }
47     $out/bin/vhs man > vhs.1
48     installManPage vhs.1
49     installShellCompletion --cmd vhs \
50       --bash <($out/bin/vhs completion bash) \
51       --fish <($out/bin/vhs completion fish) \
52       --zsh <($out/bin/vhs completion zsh)
53   '';
55   meta = with lib; {
56     description = "Tool for generating terminal GIFs with code";
57     mainProgram = "vhs";
58     homepage = "https://github.com/charmbracelet/vhs";
59     changelog = "https://github.com/charmbracelet/vhs/releases/tag/v${version}";
60     license = licenses.mit;
61     maintainers = with maintainers; [
62       maaslalani
63       penguwin
64     ];
65   };