{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; clj-nix.url = "github:jlesquembre/clj-nix"; }; outputs = { self, nixpkgs, clj-nix, ... }@inputs: let supportedSystems = [ "aarch64-darwin" "aarch64-linux" "x86_64-darwin" "x86_64-linux" ]; each-system = f: nixpkgs.lib.genAttrs supportedSystems (system: f rec { pkgs = import nixpkgs { inherit system; overlays = [ clj-nix.overlays.default self.overlays.default ]; }; inherit (pkgs) lib; inherit system; }); in { packages = each-system ({ pkgs, ... }: { inherit (pkgs) net-deertopia net-deertopia-graal doerg-parser; default = pkgs.net-deertopia; }); overlays.default = final: prev: let graal = x: final.mkGraalBin { cljDrv = x; }; in rec { net-deertopia = final.callPackage ./server/package.nix {}; net-deertopia-graal = graal net-deertopia; doerg-parser = final.callPackage ./doerg-parser/package.nix {}; }; devShells = each-system ({ pkgs, system, ... }: { default = pkgs.mkShell { inputsFrom = [ self.packages.${system}.net-deertopia self.packages.${system}.doerg-parser ]; packages = with pkgs; [ clojure-lsp zprint clojure babashka sqlite-web ]; }; }); }; }