My personal project and infrastructure archive
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
nomicon/pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix

31 lines
1.2 KiB

{ gnutar, gzip, git, haskell, haskellPackages, lib, makeWrapper, nixos, runc, stdenv }:
let
inherit (haskell.lib.compose) overrideCabal addBuildDepends justStaticExecutables;
inherit (lib) makeBinPath;
bundledBins = [ gnutar gzip git ] ++ lib.optional stdenv.isLinux runc;
pkg =
# justStaticExecutables is needed due to https://github.com/NixOS/nix/issues/2990
overrideCabal
(o: {
postInstall = ''
${o.postInstall or ""}
mkdir -p $out/libexec
mv $out/bin/hercules-ci-agent $out/libexec
makeWrapper $out/libexec/hercules-ci-agent $out/bin/hercules-ci-agent --prefix PATH : ${lib.escapeShellArg (makeBinPath bundledBins)}
'';
})
(addBuildDepends [ makeWrapper ] (justStaticExecutables haskellPackages.hercules-ci-agent));
in pkg.overrideAttrs (o: {
meta = o.meta // {
position = toString ./default.nix + ":1";
};
passthru = o.passthru // {
# Does not test the package, but evaluation of the related NixOS module.
tests.nixos-minimal-config = nixos {
boot.loader.grub.enable = false;
fileSystems."/".device = "bogus";
services.hercules-ci-agent.enable = true;
};
};
})