mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-09 12:29:19 -08:00
chore(overlays): trivial builder wrappers
This commit is contained in:
parent
7744e4389d
commit
7017c8c5f9
4 changed files with 134 additions and 13 deletions
|
|
@ -1,7 +1,32 @@
|
|||
{gensokyo-zone, ...}: let
|
||||
{
|
||||
config,
|
||||
system,
|
||||
gensokyo-zone,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (gensokyo-zone.lib) mkAlmostForce;
|
||||
inherit (lib.options) mkOption;
|
||||
inherit (lib.modules) mkIf mkDefault;
|
||||
inherit (lib.attrsets) optionalAttrs;
|
||||
inherit (gensokyo-zone.self) overlays;
|
||||
cfg = config.nixpkgs;
|
||||
hostPlatform = lib.systems.elaborate {
|
||||
inherit (system) system;
|
||||
};
|
||||
in {
|
||||
nixpkgs = {
|
||||
options.nixpkgs = with lib.types; {
|
||||
usePkgs = mkOption {
|
||||
type = enum ["legacyPackages.pkgs" "import" "nixos"];
|
||||
description = "gensokyo-zone#legacyPackages.pkgs";
|
||||
default =
|
||||
if cfg.buildPlatform == cfg.hostPlatform && cfg.hostPlatform == hostPlatform && gensokyo-zone.self ? legacyPackages.${cfg.hostPlatform.system}.pkgs
|
||||
then "legacyPackages.pkgs"
|
||||
else "import";
|
||||
};
|
||||
};
|
||||
config.nixpkgs = {
|
||||
hostPlatform = mkDefault hostPlatform;
|
||||
overlays = [
|
||||
gensokyo-zone.inputs.arcexprs.overlays.default
|
||||
overlays.default
|
||||
|
|
@ -13,4 +38,18 @@ in {
|
|||
];
|
||||
};
|
||||
};
|
||||
config._module.args.pkgs = let
|
||||
pkgsArgs = {
|
||||
inherit (cfg) config overlays;
|
||||
localSystem = cfg.buildPlatform;
|
||||
};
|
||||
pkgsCrossArgs = optionalAttrs (cfg.buildPlatform != cfg.hostPlatform) {
|
||||
crossSystem = cfg.hostPlatform;
|
||||
};
|
||||
pkgs = {
|
||||
"legacyPackages.pkgs" = gensokyo-zone.self.legacyPackages.${cfg.hostPlatform.system}.pkgs;
|
||||
import = import gensokyo-zone.inputs.nixpkgs (pkgsArgs // pkgsCrossArgs);
|
||||
};
|
||||
in
|
||||
mkIf (cfg.usePkgs != "nixos") (mkAlmostForce pkgs.${cfg.usePkgs}.__withSubBuilders);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue