Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ lib, stdenv, fetchzip, makeWrapper, mono }: 2 3stdenv.mkDerivation rec { 4 pname = "juniper"; 5 version = "2.3.0"; 6 7 src = fetchzip { 8 url = "http://www.juniper-lang.org/installers/Juniper-${version}.zip"; 9 sha256 = "10am6fribyl7742yk6ag0da4rld924jphxja30gynzqysly8j0vg"; 10 stripRoot = false; 11 }; 12 13 doCheck = true; 14 15 nativeBuildInputs = [ makeWrapper ]; 16 17 buildInputs = [ mono ]; 18 19 installPhase = '' 20 runHook preInstall 21 rm juniper # original script with regular Linux assumptions 22 mkdir -p $out/bin 23 cp -r ./* $out 24 makeWrapper ${mono}/bin/mono $out/bin/juniper \ 25 --add-flags "$out/Juniper.exe \$@" 26 runHook postInstall 27 ''; 28 29 meta = with lib; { 30 description = "Functional reactive programming language for programming Arduino"; 31 longDescription = '' 32 Juniper targets Arduino and supports many features typical of functional programming languages, including algebraic data types, tuples, records, 33 pattern matching, immutable data structures, parametric polymorphic functions, and anonymous functions (lambdas). 34 Some imperative programming concepts are also present in Juniper, such as for, while and do while loops, the ability to mark variables as mutable, and mutable references. 35 ''; 36 homepage = "https://www.juniper-lang.org/"; 37 license = licenses.mit; 38 maintainers = with maintainers; [ ]; 39 platforms = platforms.linux; 40 }; 41}