Files
nixpkgs/pkgs/development/lean-modules/proofwidgets/default.nix
2026-10-13 21:14:55 -04:00

59 lines
1.3 KiB
Nix

{
lib,
buildLakePackage,
fetchFromGitHub,
fetchNpmDeps,
npmHooks,
nodejs,
}:
buildLakePackage (finalAttrs: {
pname = "lean4-proofwidgets";
# nixpkgs-update: no auto update
version = "0.0.116-unstable-2026-10-12";
src = fetchFromGitHub {
owner = "leanprover-community";
repo = "ProofWidgets4";
rev = "df72b022e558978a1c50264cfc4d7fec86fa8e04";
hash = "sha256-gh6xMZ/JmTmg4ARfWRaEY7QbJ//a7YZ1AN0D/AT3dUM=";
};
leanPackageName = "proofwidgets";
lakeHash = null;
nativeBuildInputs = [
nodejs
npmHooks.npmConfigHook
];
npmDeps = fetchNpmDeps {
name = "lean4-proofwidgets-npm-deps";
src = finalAttrs.src;
sourceRoot = "source/widget";
hash = "sha256-z3LCBPmowLlkn5w/z72J1l8WnY60F8I7r48HMM/Lnns=";
};
npmRoot = "widget";
postConfigure = ''
local realNpm
realNpm="$(type -P npm)"
mkdir -p "$TMPDIR/npm-wrap"
cat > "$TMPDIR/npm-wrap/npm" <<WRAPPER
#!/bin/sh
case "\$1" in ci|clean-install) exit 0 ;; esac
exec "$realNpm" "\$@"
WRAPPER
chmod +x "$TMPDIR/npm-wrap/npm"
export PATH="$TMPDIR/npm-wrap:$PATH"
'';
meta = {
description = "Interactive UI framework for Lean 4 proof assistants";
homepage = "https://github.com/leanprover-community/ProofWidgets4";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ nadja-y ];
};
})