nixpkgs/pkgs/development/tools/misc/arcanist/default.nix
Simonas Kazlauskas 3a64e5f72e
arcanist: 20200127 -> 20200711 (#93678)
Note that this arcanist bump introduces some breaking changes to the
tool interface.
2020-08-06 13:43:25 +02:00

62 lines
1.7 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ stdenv, fetchFromGitHub, php, flex }:
# Make a custom wrapper. If `wrapProgram` is used, arcanist thinks .arc-wrapped is being
# invoked and complains about it being an unknown toolset. We could use `makeWrapper`, but
# then wed need to still craft a script that does the `php libexec/arcanist/bin/...` dance
# anyway... So just do everything at once.
let makeArcWrapper = toolset: ''
cat << WRAPPER > $out/bin/${toolset}
#!$shell -e
export PATH='${php}/bin/'\''${PATH:+':'}\$PATH
exec ${php}/bin/php $out/libexec/arcanist/bin/${toolset} "\$@"
WRAPPER
chmod +x $out/bin/${toolset}
'';
in
stdenv.mkDerivation {
pname = "arcanist";
version = "20200711";
src = fetchFromGitHub {
owner = "phacility";
repo = "arcanist";
rev = "2565cc7b4d1dbce6bc7a5b3c4e72ae94be4712fe";
sha256 = "0jiv4aj4m5750dqw9r8hizjkwiyxk4cg4grkr63sllsa2dpiibxw";
};
buildInputs = [ php flex ];
postPatch = stdenv.lib.optionalString stdenv.isAarch64 ''
substituteInPlace support/xhpast/Makefile \
--replace "-minline-all-stringops" ""
'';
buildPhase = ''
make xhpast -C support/xhpast
'';
installPhase = ''
mkdir -p $out/bin $out/libexec
make install -C support/xhpast
cp -R $src $out/libexec/arcanist
${makeArcWrapper "arc"}
${makeArcWrapper "phage"}
'';
doInstallCheck = true;
installCheckPhase = ''
$out/bin/arc help diff -- > /dev/null
$out/bin/phage help alias -- > /dev/null
'';
meta = {
description = "Command line interface to Phabricator";
homepage = "http://phabricator.org";
license = stdenv.lib.licenses.asl20;
platforms = stdenv.lib.platforms.unix;
maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
};
}