{ description = "Grimu-R base"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-parts.url = "github:hercules-ci/flake-parts"; flake-root.url = "github:srid/flake-root"; deno-with-packages.url = "github:voleum-org/deno-with-packages"; }; outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } { imports = [ inputs.flake-root.flakeModule inputs.deno-with-packages.flakeModule ]; systems = [ "x86_64-linux" ]; perSystem = { self', pkgs, config, system, ... }: let lib = import ./nix; shelf = import ./shelf { inherit pkgs system lib; }; in rec { deno = { enable = true; lockfiles = shelf.lockfiles ++ [ ./platform/loom/deno.lock ]; }; packages.website = import ./nix/website.nix { inherit pkgs; root = ./.; }; packages.loom = import ./platform { inherit pkgs; denoCache = config.packages.deno-cache; }; devShells.default = pkgs.mkShell { buildInputs = with pkgs; [ config.packages.deno pandoc reuse packages.loom ]; inputsFrom = [ config.flake-root.devShell ]; shellHook = '' echo "Available scrolls:" echo ${pkgs.lib.escapeShellArg (builtins.toJSON shelf.scrolls)} | jq . ''; }; }; }; }