{ description = "Cooklang tools"; outputs = { self, nixpkgs }: let supportedSystems = [ "x86_64-linux" ]; pkgsFor = system: import nixpkgs { inherit system; }; perSystem = nixpkgs.lib.genAttrs supportedSystems; mkApp = { drv , name ? drv.pname or drv.name , exePath ? drv.meta.mainProgram or "bin/${name}" }: { type = "app"; program = "${drv}/${exePath}"; }; in { packages = perSystem (system: let pkgs = pkgsFor system; genPackage = name: pkgs.callPackage ./packages/${name}.nix { }; packages = [ "cookcli" "cook-docs" "cook-mode" ]; in pkgs.lib.genAttrs packages genPackage // { default = self.packages.${system}.cookcli; }); apps = perSystem (system: rec { cookcli = mkApp { drv = self.packages.${system}.cookcli; exePath = "/bin/cook"; }; cook-docs = mkApp { drv = self.packages.${system}.cook-docs; }; default = cookcli; }); }; }