summaryrefslogtreecommitdiffstats
path: root/krebs/5pkgs/simple/brain/default.nix
blob: 9f183cfe9d9f3dbba2d229abf767d89f0788cd2c (plain)
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
{ pkgs }:

let
  pass = pkgs.pass.withExtensions (ext: [
    ext.pass-otp
  ]);

  brain = pkgs.writeDash "brain" ''
    PASSWORD_STORE_DIR=$HOME/brain \
    exec ${pass}/bin/pass "$@"
  '';

  brainmenu = pkgs.writeDash "brainmenu" ''
    PASSWORD_STORE_DIR=$HOME/brain \
    exec ${pass}/bin/passmenu "$@"
  '';

  completions = pkgs.runCommand "brain-completions" {} ''
    sed -r '
      s/\<_pass?(_|\>)/_brain\1/g
      s/\<__password_store/_brain/g
      s/\<pass\>/brain/
      s/\$HOME\/\.password-store/$HOME\/brain/
    ' < ${pass}/share/bash-completion/completions/pass > $out
  '';
in

pkgs.runCommand "brain" {} ''
  mkdir -p $out/bin $out/share/bash-completion/completions
  ln -s ${brain} $out/bin/brain
  ln -s ${brainmenu} $out/bin/brainmenu
  ln -s ${completions} $out/share/bash-completion/completions/brain
''