From 71e82cca2bb6391318744ee5ad3cf93e3cdaf36b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sat, 31 Dec 2022 16:26:03 +0100 Subject: [PATCH] rework flake --- flake.nix | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/flake.nix b/flake.nix index 49847a2..aa11cda 100644 --- a/flake.nix +++ b/flake.nix @@ -9,29 +9,29 @@ mkApp = { drv , name ? drv.pname or drv.name - , exePath ? drv.meta.mainProgram or "bin/${name}" + , exePath ? drv.passthru.exePath or "bin/${drv.meta.mainProgram or name}" }: { type = "app"; program = "${drv}/${exePath}"; }; + mkPackage = pkgs: name: pkgs.callPackage ./packages/${name}.nix { }; + + defaultApp = builtins.head apps; # first app is default one + packages = apps ++ nonApps; + + # Apps + apps = [ "cookcli" "cook-docs" ]; + # Packages which are not apps + nonApps = [ "cook-mode" ]; 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; + packages = perSystem (system: nixpkgs.lib.genAttrs packages (mkPackage (pkgsFor system))); + apps = perSystem (system: + nixpkgs.lib.genAttrs apps (name: mkApp { drv = self.packages.${system}.${name}; }) // { + default = self.apps.${system}.${defaultApp}; }); - 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; - }); + overlays = nixpkgs.lib.genAttrs packages (name: final: prev: mkPackage prev name) // { + default = final: prev: nixpkgs.lib.genAttrs packages (mkPackage prev); + }; }; }