diff --git a/flake.lock b/flake.lock index edb3fad..fefca3a 100644 --- a/flake.lock +++ b/flake.lock @@ -18,41 +18,7 @@ }, "root": { "inputs": { - "nixpkgs": "nixpkgs", - "utils": "utils" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" + "nixpkgs": "nixpkgs" } } }, diff --git a/flake.nix b/flake.nix index 19ec3d8..209527d 100644 --- a/flake.nix +++ b/flake.nix @@ -3,56 +3,62 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; - utils.url = "github:numtide/flake-utils"; }; outputs = - { - self, - nixpkgs, - utils, - }: - utils.lib.eachDefaultSystem ( - system: - let - pkgs = import nixpkgs { + { self, nixpkgs }: + let + inherit (nixpkgs) lib; + makePkgs = + system: + import nixpkgs { inherit system; overlays = [ self.overlays.default ]; }; - inherit (pkgs) lib; - names = builtins.attrNames (self.overlays.default pkgs pkgs); - in - { - devShells = { - plotter = pkgs.callPackage ./shells/plotter { }; - ryujinx = pkgs.callPackage ./shells/ryujinx { }; - zephyr = pkgs.callPackage ./shells/zephyr { }; - }; + forAllSystems = + f: + lib.listToAttrs ( + map (system: { + name = system; + value = f (makePkgs system); + }) lib.systems.flakeExposed + ); + makeDummy = + pkg: + if lib.isDerivation pkg then + pkg + else + pkg + // { + type = "derivation"; + name = "dummy-attrset"; + }; + in + { + formatter = forAllSystems (pkgs: pkgs.nixfmt-rfc-style); - formatter = pkgs.nixfmt-rfc-style; - packages = builtins.listToAttrs ( + devShells = forAllSystems (pkgs: { + plotter = pkgs.callPackage ./shells/plotter { }; + ryujinx = pkgs.callPackage ./shells/ryujinx { }; + zephyr = pkgs.callPackage ./shells/zephyr { }; + }); + + packages = forAllSystems ( + pkgs: + builtins.listToAttrs ( + let + names = builtins.attrNames (self.overlays.default pkgs pkgs); + in lib.concatMap ( name: - let - pkg = pkgs.${name}; - in - lib.optional (builtins.typeOf pkg == "set") { + lib.optional (builtins.typeOf pkgs.${name} == "set") { inherit name; - value = - if lib.isDerivation pkg then - pkg - else - pkg - // { - type = "derivation"; - name = "dummy-attrset"; - }; + value = makeDummy pkgs.${name}; } ) names - ); - } - ) - // { + ) + ); + overlays.default = final: prev: { apotris = final.callPackage ./packages/apotris { }; attic = final.callPackage ./packages/attic { };