evcc: 0.131.4 -> 0.131.5
[NixPkgs.git] / pkgs / by-name / vh / vhs / package.nix
blob12e14f212f7d74135210eb98b35c706d7b95e2a7
1 { lib, stdenv, buildGoModule, installShellFiles, fetchFromGitHub, ffmpeg, ttyd, chromium, makeWrapper }:
3 buildGoModule rec {
4   pname = "vhs";
5   version = "0.8.0";
7   src = fetchFromGitHub {
8     owner = "charmbracelet";
9     repo = pname;
10     rev = "v${version}";
11     hash = "sha256-kUsh+jy4dXYW1uAUfFv/HKBqIIyVogLKUYNjBhIKlls=";
12   };
14   vendorHash = "sha256-1UBhiRemJ+dQNm20+8pbOJus5abvTwVcuzxNMzrniN8=";
16   nativeBuildInputs = [ installShellFiles makeWrapper ];
18   ldflags = [ "-s" "-w" "-X=main.Version=${version}" ];
20   postInstall = ''
21     wrapProgram $out/bin/vhs --prefix PATH : ${lib.makeBinPath (lib.optionals stdenv.hostPlatform.isLinux [ chromium ] ++ [ ffmpeg ttyd ])}
22     $out/bin/vhs man > vhs.1
23     installManPage vhs.1
24     installShellCompletion --cmd vhs \
25       --bash <($out/bin/vhs completion bash) \
26       --fish <($out/bin/vhs completion fish) \
27       --zsh <($out/bin/vhs completion zsh)
28   '';
30   meta = with lib; {
31     description = "Tool for generating terminal GIFs with code";
32     mainProgram = "vhs";
33     homepage = "https://github.com/charmbracelet/vhs";
34     changelog = "https://github.com/charmbracelet/vhs/releases/tag/v${version}";
35     license = licenses.mit;
36     maintainers = with maintainers; [ maaslalani penguwin ];
37   };