78 lines
1.7 KiB
Nix
78 lines
1.7 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
fetchFromGitHub,
|
|
meson,
|
|
ninja,
|
|
nix-update-script,
|
|
runCommand,
|
|
}:
|
|
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
pname = "janet";
|
|
version = "1.37.1";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "janet-lang";
|
|
repo = "janet";
|
|
rev = "v${finalAttrs.version}";
|
|
hash = "sha256-KwuBJY3SG5Ao/sFgjrp0pzEasdI7AAWrG49uHjVA1Rs=";
|
|
};
|
|
|
|
postPatch =
|
|
''
|
|
substituteInPlace janet.1 \
|
|
--replace /usr/local/ $out/
|
|
''
|
|
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
|
|
# error: Socket is not connected
|
|
substituteInPlace meson.build \
|
|
--replace "'test/suite-ev.janet'," ""
|
|
'';
|
|
|
|
nativeBuildInputs = [
|
|
meson
|
|
ninja
|
|
];
|
|
|
|
mesonBuildType = "release";
|
|
mesonFlags = [ "-Dgit_hash=release" ];
|
|
|
|
doCheck = true;
|
|
|
|
doInstallCheck = true;
|
|
|
|
installCheckPhase = ''
|
|
$out/bin/janet -e '(+ 1 2 3)'
|
|
'';
|
|
|
|
passthru = {
|
|
tests.run =
|
|
runCommand "janet-test-run"
|
|
{
|
|
nativeBuildInputs = [ finalAttrs.finalPackage ];
|
|
}
|
|
''
|
|
echo "(+ 1 2 3)" | janet | tail -n 1 > arithmeticTest.txt;
|
|
diff -U3 --color=auto <(cat arithmeticTest.txt) <(echo "6");
|
|
|
|
echo "(print \"Hello, World!\")" | janet | tail -n 2 > ioTest.txt;
|
|
diff -U3 --color=auto <(cat ioTest.txt) <(echo -e "Hello, World!\nnil");
|
|
|
|
touch $out;
|
|
'';
|
|
updateScript = nix-update-script { };
|
|
};
|
|
|
|
meta = with lib; {
|
|
description = "Janet programming language";
|
|
mainProgram = "janet";
|
|
homepage = "https://janet-lang.org/";
|
|
license = licenses.mit;
|
|
maintainers = with maintainers; [
|
|
andrewchambers
|
|
peterhoeg
|
|
];
|
|
platforms = platforms.all;
|
|
};
|
|
})
|