mbqn: init at 0.0.0+unstable=2021-10-01

This commit is contained in:
AndersonTorres 2021-10-03 03:17:26 -03:00
parent 18e178040a
commit 24f04ee6bb
3 changed files with 79 additions and 0 deletions

View file

@ -0,0 +1,12 @@
diff -Naur source-old/bqn.js source-new/bqn.js
--- source-old/bqn.js 1969-12-31 21:00:01.000000000 -0300
+++ source-new/bqn.js 2021-10-03 01:28:00.268998916 -0300
@@ -4,7 +4,7 @@
let path = require('path');
let fs = require('fs');
-let bqn = require("./docs/bqn.js");
+let bqn = require("@libbqn@");
module.exports = bqn;
let {fmt,fmtErr,sysvals,sysargs,makebqn,makerepl}=bqn;
let {has,list,str,unstr,dynsys,req1str,makens}=bqn.util;

View file

@ -0,0 +1,64 @@
{ lib
, stdenvNoCC
, fetchFromGitHub
, makeWrapper
, nodejs
}:
stdenvNoCC.mkDerivation rec {
pname = "bqn";
version = "0.0.0+unstable=2021-10-01";
src = fetchFromGitHub {
owner = "mlochbaum";
repo = "BQN";
rev = "b3d68f730d48ccb5e3b3255f9010c95bf9f86e22";
hash = "sha256-Tkgwz7+d25svmjRsXFUQq0S/73QJU+BKSNeGqpUcBTQ=";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ nodejs ];
patches = [
# Creates a @libbqn@ substitution variable
./001-libbqn-path.patch
];
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/share/${pname}
cp bqn.js $out/share/${pname}/bqn.js
cp docs/bqn.js $out/share/${pname}/libbqn.js
makeWrapper "${lib.getBin nodejs}/bin/node" "$out/bin/mbqn" \
--add-flags "$out/share/${pname}/bqn.js"
ln -s $out/bin/mbqn $out/bin/bqn
runHook postInstall
'';
fixupPhase = ''
runHook preFixup
substituteInPlace $out/share/${pname}/bqn.js \
--subst-var-by "libbqn" "$out/share/${pname}/libbqn.js"
runHook postFixup
'';
meta = with lib; {
homepage = "https://github.com/mlochbaum/BQN/";
description = "The original BQN implementation in Javascript";
license = licenses.isc;
maintainers = with maintainers; [ AndersonTorres ];
platforms = platforms.all;
};
}
# TODO: install docs and other stuff

View file

@ -12832,6 +12832,9 @@ with pkgs;
babashka = callPackage ../development/interpreters/clojure/babashka.nix { };
# BQN interpreters and compilers
mbqn = callPackage ../development/interpreters/bqn/mlochbaum-bqn { };
cbqn = cbqn-phase2;
# And the classic bootstrapping process
cbqn-phase0 = callPackage ../development/interpreters/bqn/cbqn {