{ description = "nixpkgs-search: search nixpkgs from the terminal"; inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; outputs = { self, nixpkgs }: let # TODO(claude): use the nixpkgs.lib for supported systems instead off hardcoding systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; forAllSystems = f: nixpkgs.lib.genAttrs systems (system: f { inherit system; pkgs = nixpkgs.legacyPackages.${system}; }); in { packages = forAllSystems ({ pkgs, ... }: rec { nixpkgs-search = pkgs.buildGoModule { pname = "nixpkgs-search"; version = "0.1.0"; src = ./.; vendorHash = null; nativeBuildInputs = [ pkgs.makeWrapper ]; postInstall = '' wrapProgram $out/bin/nixpkgs-search \ --prefix PATH : ${pkgs.lib.makeBinPath [ pkgs.fzf ]} ''; }; default = nixpkgs-search; }); apps = forAllSystems ({ system, ... }: { default = { type = "app"; program = "${self.packages.${system}.nixpkgs-search}/bin/nixpkgs-search"; }; }); devShells = forAllSystems ({ pkgs, system }: { default = pkgs.mkShell { inputsFrom = [ self.packages.${system}.nixpkgs-search ]; packages = [ self.packages.${system}.nixpkgs-search pkgs.go pkgs.gopls pkgs.gotools pkgs.go-tools pkgs.fzf pkgs.plan9port ]; }; }); }; }