nixpkgs/pkgs/tools/admin/acme.sh/default.nix
Dmitry Bogatov 5452b7f24c
acme-sh: fix missing runtime dependencies (#121322)
acme.sh is a shell script and uses coreutils, sed and grep. If they are
not found in $PATH, it fails with obscure error message:

    >= /usr/bin/env -i ./result/bin/acme.sh --help
    /nix/store/rcbiaxiszy5pl49flfimqrn81fa491l1-acme.sh-2.8.2/libexec/acme.sh: line 6926: --help: command not found

Co-authored-by: Dmitry Bogatov <git#v1@kaction.cc>
2021-06-10 00:38:05 +02:00

45 lines
1 KiB
Nix

{ stdenv, lib, fetchFromGitHub, makeWrapper, curl, openssl, socat, iproute2,
unixtools, dnsutils, coreutils, gnugrep, gnused }:
stdenv.mkDerivation rec {
pname = "acme.sh";
version = "2.9.0";
src = fetchFromGitHub {
owner = "Neilpang";
repo = "acme.sh";
rev = version;
sha256 = "sha256-BSKqfj8idpE4OV8/EJkCFo5i1vq/aEde/moqJcwuDvk=";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
mkdir -p $out $out/bin $out/libexec
cp -R $src/* $_
makeWrapper $out/libexec/acme.sh $out/bin/acme.sh \
--prefix PATH : "${
lib.makeBinPath [
coreutils
gnugrep
gnused
socat
openssl
curl
dnsutils
(if stdenv.isLinux then iproute2 else unixtools.netstat)
]
}"
runHook postInstall
'';
meta = with lib; {
description = "A pure Unix shell script implementing ACME client protocol";
homepage = "https://acme.sh/";
license = licenses.gpl3;
maintainers = teams.serokell.members;
};
}