{ description = "An empty flake template that you can adapt to your own environment"; # Flake inputs inputs.nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0.1"; # unstable Nixpkgs # Flake outputs outputs = {self, ...} @ inputs: let # The systems supported for this flake supportedSystems = [ "x86_64-linux" # 64-bit Intel/AMD Linux "aarch64-linux" # 64-bit ARM Linux "aarch64-darwin" # 64-bit ARM macOS ]; # Helper to provide system-specific attributes forEachSupportedSystem = f: inputs.nixpkgs.lib.genAttrs supportedSystems ( system: f { inherit system; pkgs = import inputs.nixpkgs {inherit system;}; } ); in { devShells = forEachSupportedSystem ( { pkgs, system, }: { default = pkgs.mkShellNoCC { # The Nix packages provided in the environment # Add any you need here packages = with pkgs; [ self.formatter.${system} uv ]; # Set any environment variables for your dev shell env = {}; # Add any shell logic you want executed any time the environment is activated shellHook = ""; }; } ); formatter = forEachSupportedSystem ({pkgs, ...}: pkgs.nixfmt); }; }