{ 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) server doerg; default = pkgs.server; }); overlays.default = final: prev: let graal = x: final.mkGraalBin { cljDrv = x; }; in rec { server = final.callPackage ./server/package.nix {}; doerg = final.callPackage ./doerg/package.nix {}; }; devShells = each-system ({ pkgs, system, ... }: { default = pkgs.mkShell { inputsFrom = [ self.packages.${system}.server self.packages.${system}.doerg ]; packages = with pkgs; [ clojure-lsp zprint clojure babashka sqlite-web ]; }; }); }; }