about summary refs log tree commit diff
path: root/pkgs/tools/security/tessen/default.nix
blob: 97a35414a22b1bae28908c4752ea942c65296bcd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
{ lib
, stdenvNoCC
, fetchFromSourcehut
, makeWrapper
, installShellFiles
, wtype
, wl-clipboard
, pass
, bemenu
, scdoc
}:

stdenvNoCC.mkDerivation rec {
  pname = "tessen";
  version = "2.2.0";

  src = fetchFromSourcehut {
    owner = "~ayushnix";
    repo  = pname;
    rev = "v${version}";
    sha256  = "sha256-7hiH1il9vFkrld5wFU+jT7IuudKwigO7ggFuwVbkvYw=";
  };

  nativeBuildInputs = [ makeWrapper installShellFiles scdoc ];

  dontBuild = true;

  installPhase = ''
    runHook preInstall
    install -D tessen $out/bin/tessen
    wrapProgram $out/bin/tessen --prefix PATH : ${ lib.makeBinPath [ bemenu pass wtype wl-clipboard ] }
    runHook postInstall
  '';

  postInstall = ''
    scdoc < man/tessen.1.scd > man/tessen.1
    scdoc < man/tessen.5.scd > man/tessen.5
    installManPage man/*.{1,5}
    installShellCompletion --cmd tessen \
      --bash completion/tessen.bash-completion \
      --fish completion/tessen.fish-completion
    install -Dm644 config $out/share/tessen/config
  '';

  meta = with lib; {
    homepage = "https://sr.ht/~ayushnix/tessen";
    description = "An interactive menu to autotype and copy Pass and GoPass data";
    license = licenses.gpl2Plus;
    platforms = platforms.linux;
    maintainers = with maintainers; [ monaaraj ];
  };
}