pinwheel: Use pkgs.buildFHSUserEnv for pants

This commit is contained in:
Alexander Heldt
2024-07-21 10:13:37 +02:00
parent 89f9e6fc29
commit ac279110f5
4 changed files with 38 additions and 161 deletions

View File

@@ -13,11 +13,7 @@ in
home.packages = [
(pkgs.callPackage ./syb-cli.nix {})
(pkgs.callPackage ./pants.nix {
nix-alien = inputs.nix-alien.packages."${pkgs.system}".nix-alien;
})
pkgs.unzip # needed by pants
(pkgs.callPackage ./pants.nix {})
(pkgs.jetbrains.plugins.addPlugins pkgs.jetbrains.idea-ultimate [ "ideavim" ])
(pkgs.google-cloud-sdk.withExtraComponents [ pkgs.google-cloud-sdk.components.gke-gcloud-auth-plugin ])

View File

@@ -1,39 +1,47 @@
{
stdenv,
fetchurl,
writeShellScriptBin,
nix-alien,
...
pkgs,
lib,
}:
let
version = "0.11.0";
pname = "pants";
version = "0.12.0";
unpatched = stdenv.mkDerivation {
name = "scie-pants";
version = version;
sourceRoot = ".";
phases = [
"installPhase"
"patchPhase"
];
scie-pants = pkgs.stdenv.mkDerivation {
inherit pname version;
src = fetchurl {
url = "https://github.com/pantsbuild/scie-pants/releases/download/v${version}/scie-pants-linux-x86_64";
sha256 = "sha256-ifP5gjTdLMXyVSKda6pPBNNcnJZ0giuqikFBk7cXgHI=";
url = "https://github.com/pantsbuild/scie-pants/releases/download/v${version}/scie-${pname}-linux-x86_64";
hash = "sha256-9PjgobndxVqDTYGtw1HESrtzwzH2qE9zFwR26xtwZrM=";
};
phases = ["installPhase" "patchPhase"];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp $src $out/bin/pants
chmod +x $out/bin/pants
runHook postInstall
'';
};
in
writeShellScriptBin "pants" ''
export LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH
${nix-alien}/bin/nix-alien ${unpatched}/bin/pants -- "$@"
''
pkgs.buildFHSUserEnv {
name = "pants";
targetPackages = with pkgs; [
python39
];
runScript = "${scie-pants}/bin/pants";
profile = ''
export NIX_SSL_CERT_FILE="/etc/ssl/certs/ca-certificates.crt"
export SSL_CERT_FILE="/etc/ssl/certs/ca-bundle.crt"
'';
meta = with lib; {
description = "Protects your Pants from the elements";
homepage = "https://github.com/pantsbuild/scie-pants";
license = licenses.asl20;
maintainers = [];
platforms = [ "x86_64-linux" ];
mainProgram = "pants";
};
}