From cd59cd02995012b80f2584919d98eeec472e1228 Mon Sep 17 00:00:00 2001 From: Stefan Fehrenbach Date: Thu, 26 Jan 2023 16:50:49 +0100 Subject: [PATCH] frink: init at 2023-01-31 Co-authored-by: Anderson Torres --- pkgs/development/tools/frink/default.nix | 54 ++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 56 insertions(+) create mode 100644 pkgs/development/tools/frink/default.nix diff --git a/pkgs/development/tools/frink/default.nix b/pkgs/development/tools/frink/default.nix new file mode 100644 index 00000000000..803fb63c5e6 --- /dev/null +++ b/pkgs/development/tools/frink/default.nix @@ -0,0 +1,54 @@ +{ fetchurl +, frink +, jdk +, lib +, rlwrap +, stdenv +, testers +}: +stdenv.mkDerivation rec { + pname = "frink"; + version = "2023-01-31"; + + src = fetchurl { + # Upstream does not provide versioned download links + url = "https://web.archive.org/web/20230202134810/https://frinklang.org/frinkjar/frink.jar"; + sha256 = "sha256-xs1FQvFPgeAxscAiwBBP8N8aYe0OlsYbH/vbzzCbYZc="; + }; + + dontUnpack = true; + + buildInputs = [ jdk rlwrap ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin $out/lib + + cp ${src} $out/lib/frink.jar + + cat > "$out/bin/frink" << EOF + #!${stdenv.shell} + exec ${rlwrap}/bin/rlwrap ${jdk}/bin/java -classpath "$out/lib/frink.jar" frink.gui.FrinkStarter "\$@" + EOF + + chmod a+x "$out/bin/frink" + + runHook postInstall + ''; + + meta = with lib; { + description = "A practical calculating tool and programming language"; + homepage = "https://frinklang.org/"; + license = licenses.unfree; + sourceProvenance = [ sourceTypes.binaryBytecode ]; + maintainers = [ maintainers.stefanfehrenbach ]; + }; + + passthru.tests = { + callFrinkVersion = testers.testVersion { + package = frink; + command = "frink -e 'FrinkVersion[]'"; + }; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 83fd17549fa..43cdbce26d2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -508,6 +508,8 @@ with pkgs; frece = callPackage ../development/tools/frece { }; + frink = callPackage ../development/tools/frink { }; + frugal = callPackage ../development/tools/frugal { }; glade = callPackage ../development/tools/glade { };