flake: Add derivation for pass with local otp build

This commit is contained in:
Tad Fisher 2022-02-12 17:51:59 -08:00 committed by Tad Fisher
parent e0a023df7e
commit 951e126354
2 changed files with 59 additions and 39 deletions

55
default.nix Normal file
View File

@ -0,0 +1,55 @@
{ lib
, stdenv
, oathToolkit
, bash
, expect
, git
, gnumake
, gnupg
, pass
, shellcheck
, which
}:
stdenv.mkDerivation {
pname = "pass-otp";
version = "unstable";
src = ./.;
buildInputs = [ oathToolkit ];
checkInputs = [
bash
expect
git
gnumake
gnupg
pass
shellcheck
which
];
dontBuild = true;
doCheck = true;
patchPhase = ''
sed -i -e 's|OATH=\$(which oathtool)|OATH=${oathToolkit}/bin/oathtool|' otp.bash
'';
checkPhase = ''
make SHELL=$SHELL check
'';
installFlags = [
"PREFIX=$(out)"
"BASHCOMPDIR=$(out)/share/bash-completions/completions"
];
meta = with lib; {
description = "A pass extension for managing one-time-password (OTP) tokens";
homepage = "https://github.com/tadfisher/pass-otp";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ tadfisher ];
platforms = platforms.unix;
};
}

View File

@ -9,47 +9,12 @@
flake-utils.lib.eachDefaultSystem (system:
let pkgs = nixpkgs.legacyPackages.${system}; in
{
defaultPackage = with pkgs; stdenv.mkDerivation {
pname = "pass-otp";
version = "unstable";
src = ./.;
defaultPackage = self.packages.${system}.pass-otp;
buildInputs = [ oathToolkit ];
packages = {
pass-otp = pkgs.callPackage ./default.nix { };
checkInputs = [
bash
expect
git
gnumake
gnupg
pass
shellcheck
which
];
dontBuild = true;
doCheck = true;
patchPhase = ''
sed -i -e 's|OATH=\$(which oathtool)|OATH=${oathToolkit}/bin/oathtool|' otp.bash
'';
checkPhase = ''
make SHELL=$SHELL check
'';
installFlags = [
"PREFIX=$(out)"
"BASHCOMPDIR=$(out)/share/bash-completions/completions"
];
meta = with lib; {
description = "A pass extension for managing one-time-password (OTP) tokens";
homepage = "https://github.com/tadfisher/pass-otp";
license = licenses.gpl3;
maintainers = with maintainers; [ tadfisher ];
platforms = platforms.unix;
};
pass-with-otp = pkgs.pass.withExtensions (e: [ self.packages.${system}.pass-otp ]);
};
checks.pass-otp = self.defaultPackage.${system};