Files
organic_ast_explorer/flake.nix

92 lines
2.3 KiB
Nix

{
description = "Web demo of Organic Org Parser";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
organic = {
url = "git+https://code.fizz.buzz/talexander/organic.git";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{
self,
nixpkgs,
organic,
}:
let
forAllSystems =
func:
builtins.listToAttrs (
map (system: {
name = system;
value = func system;
}) nixpkgs.lib.systems.flakeExposed
);
overlays = [ organic.overlays.default ];
in
{
devShells = forAllSystems (
system:
let
pkgs = import nixpkgs {
inherit system overlays;
};
in
{
default = pkgs.mkShell {
nativeBuildInputs = [
# rustToolchain
];
buildInputs = with pkgs; [
nodejs
];
};
}
);
packages = forAllSystems (
system:
let
pkgs = import nixpkgs {
inherit system overlays;
};
appliedOverlay = self.overlays.default pkgs pkgs;
in
rec {
inherit (appliedOverlay.organic_ast_explorer)
release
;
default = release;
}
);
overlays.default = final: prev: {
organic_ast_explorer = final.lib.makeScope final.newScope (
organic_ast_explorer_scope:
let
wasm_bundler = (organic.overlays.default final final).organic.wasm_bundler;
in
{
release = final.buildNpmPackage {
pname = "organic_ast_explorer";
version = "0.0.0";
src = final.lib.cleanSource ./.;
npmDepsHash = "sha256-cIL9HRZIg8djOgFEuH7jwem7Eia7V5tPogONma+TO9U=";
npmBuildScript = "release";
preConfigure = ''
substituteInPlace src/Explorer.tsx --replace-fail '../../organic/target/wasm32-unknown-unknown/js/wasm' '${wasm_bundler}/share/bundler/wasm'
'';
installPhase = ''
mkdir $out
runHook preInstall
cp -r dist/* "$out"
runHook postInstall
'';
};
}
);
};
};
}