{ description = "Gleamish"; inputs = { nixpkgs.follows = "gleam2nix/nixpkgs"; flake-utils.url = "github:numtide/flake-utils"; gleam2nix.url = "github:mtoohey31/gleam2nix"; }; outputs = { self, nixpkgs, flake-utils, gleam2nix }: { overlays = rec { expects-gleam2nix = final: _: { Gleamish = final.buildGleamProgram { src = builtins.path { path = ./.; name = "Gleamish-src"; }; }; }; default = nixpkgs.lib.composeManyExtensions [ gleam2nix.overlays.default expects-gleam2nix ]; buildInputs = with nixpkgs; [ tree-sitter-grammars.tree-sitter-gleam ]; }; } // flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { overlays = [ self.overlays.default ]; inherit system; }; inherit (pkgs) Gleamish mkShell; in { packages.default = Gleamish; devShells.default = mkShell { inputsFrom = [ Gleamish ]; }; }); }