nixpkgs/pkgs/development/interpreters/janet/jpm.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

60 lines
1.3 KiB
Nix
Raw Normal View History

2022-02-03 05:56:17 +00:00
{ lib, stdenv, fetchFromGitHub, janet }:
let
platformFiles = {
aarch64-darwin = "macos_config.janet";
aarch64-linux = "linux_config.janet";
x86_64-darwin = "macos_config.janet";
x86_64-linux = "linux_config.janet";
};
platformFile = platformFiles.${stdenv.hostPlatform.system};
in
stdenv.mkDerivation rec {
pname = "jpm";
2022-07-04 10:51:40 +00:00
version = "1.1.0";
2022-02-03 05:56:17 +00:00
src = fetchFromGitHub {
owner = "janet-lang";
repo = pname;
2022-07-04 10:51:40 +00:00
rev = "v${version}";
sha256 = "sha256-lPB4jew6RkJlDp8xOQ4YA9MkgLBImaBHcvv4WF/sLRc=";
2022-02-03 05:56:17 +00:00
};
# `auto-shebangs true` gives us a shebang line that points to janet inside the
# jpm bin folder
postPatch = ''
substituteInPlace configs/${platformFile} \
--replace 'auto-shebang true' 'auto-shebang false' \
--replace /usr/local $out
'';
dontConfigure = true;
buildInputs = [ janet ];
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/{lib/janet,share/man/man1}
janet bootstrap.janet configs/${platformFile}
runHook postInstall
'';
doInstallCheck = true;
installCheckPhase = ''
$out/bin/jpm help
'';
meta = janet.meta // {
description = "Janet Project Manager for the Janet programming language";
platforms = lib.attrNames platformFiles;
};
}