{ inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; outputs = { self, nixpkgs, ... }: let lib = nixpkgs.lib; systems = [ "x86_64-linux" # "aarch64-linux" ]; forAllSystems = f: lib.genAttrs systems (system: f system); overlay = import ./default.nix; pkgsPrev = system: import nixpkgs { inherit system; }; pkgsFinal = system: import nixpkgs { inherit system; overlays = [ overlay ]; }; flakePackages = system: import ./pkgs { pkgs = pkgsFinal system; prev = pkgsPrev system; lib = (pkgsPrev system).lib; forFlakeOutputs = true; }; flakePythonPackages = system: import ./pkgs { pkgs = pkgsFinal system; prev = pkgsPrev system; lib = (pkgsPrev system).lib; forPythonScope = true; }; mkDefault = p: let directNames = lib.filter (name: lib.isDerivation p.${name}) (lib.attrNames p); in if p ? raganything then p.raganything else p.${builtins.head directNames}; in { overlays.default = overlay; packages = forAllSystems ( system: let p = flakePackages system; in p // { default = mkDefault p; } ); legacyPackages = forAllSystems ( system: { python3Packages = flakePythonPackages system; } ); }; }