23b612e36f
GitOrigin-RevId: ae5c332cbb5827f6b1f02572496b141021de335f
65 lines
1.5 KiB
Nix
65 lines
1.5 KiB
Nix
{ lib
|
|
, stdenv
|
|
, fetchFromGitHub
|
|
, meson
|
|
, ninja
|
|
, nix-update-script
|
|
, runCommand
|
|
}:
|
|
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
pname = "janet";
|
|
version = "1.33.0";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "janet-lang";
|
|
repo = "janet";
|
|
rev = "v${finalAttrs.version}";
|
|
hash = "sha256-kXbJtWxvysC4hLkgVyPpkunFhN+2iVu+S+LCo5ikj5s=";
|
|
};
|
|
|
|
postPatch = ''
|
|
substituteInPlace janet.1 \
|
|
--replace /usr/local/ $out/
|
|
'' + lib.optionalString stdenv.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";
|
|
homepage = "https://janet-lang.org/";
|
|
license = licenses.mit;
|
|
maintainers = with maintainers; [ andrewchambers peterhoeg ];
|
|
platforms = platforms.all;
|
|
};
|
|
})
|