92 lines
2.3 KiB
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
|
|
'';
|
|
};
|
|
}
|
|
);
|
|
};
|
|
};
|
|
}
|