{
lib,
stdenv,
fetchFromGitHub,
bundlerEnv,
ruby,
}:
let
gems = bundlerEnv {
name = "whatweb-env";
inherit ruby;
gemdir = ./.;
};
in
stdenv.mkDerivation rec {
pname = "whatweb";
version = "0.5.5";
src = fetchFromGitHub {
owner = "urbanadventurer";
repo = "whatweb";
rev = "v${version}";
sha256 = "sha256-HLF55x4C8n8aPO4SI0d6Z9wZe80krtUaGUFmMaYRBIE=";
prePatch = ''
substituteInPlace Makefile \
--replace "/usr/local" "$out" \
--replace "/usr" "$out"
'';
buildInputs = [ gems ];
installPhase = ''
runHook preInstall
raw=$out/share/whatweb/whatweb
rm $out/bin/whatweb
cat << EOF >> $out/bin/whatweb
#!/bin/sh -e
exec ${gems}/bin/bundle exec ${ruby}/bin/ruby "$raw" "\$@"
EOF
chmod +x $out/bin/whatweb
runHook postInstall
meta = with lib; {
description = "Next generation web scanner";
mainProgram = "whatweb";
homepage = "https://github.com/urbanadventurer/whatweb";
license = licenses.gpl2Only;
maintainers = [ ];
platforms = platforms.unix;
}