{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; clj-nix.url = "github:jlesquembre/clj-nix"; sydpkgs = { url = "git+https://git.deertopia.net/msyds/sydpkgs"; inputs.nixpkgs.follows = "nixpkgs"; }; }; 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 ]; }; inherit (pkgs) lib; inherit system; }); in { # Exposed as a REPL convenience. _pkgs = each-system ({ pkgs, ... }: pkgs); packages = each-system ({ pkgs, ... }: { default = pkgs.callPackage ./default.nix {}; db = pkgs.callPackage ./db {}; }); devShells = each-system ({ pkgs, system, ... }: { default = pkgs.mkShell { inputsFrom = [ self.packages.${system}.db ]; DATABASE_URL = "words.db"; packages = with pkgs; [ zprint clojure babashka python3 sqlite python314Packages.wiktextract sqlite-web jq rust-analyzer diesel-cli ]; }; }); }; }