From 1781d936c7e297411cf0051e2223f73875673882 Mon Sep 17 00:00:00 2001 From: Yueh-Shun Li Date: Sun, 18 Feb 2024 09:33:11 +0800 Subject: [PATCH] nix-flakes.nix: inherit from upstream nix-flakes.nix --- modules/environment/nix-flakes.nix | 81 ++---------------------------- 1 file changed, 5 insertions(+), 76 deletions(-) diff --git a/modules/environment/nix-flakes.nix b/modules/environment/nix-flakes.nix index 8021d025..e3063b6e 100644 --- a/modules/environment/nix-flakes.nix +++ b/modules/environment/nix-flakes.nix @@ -5,7 +5,7 @@ # (Copyright (c) 2003-2022 Eelco Dolstra and the Nixpkgs/NixOS contributors, # licensed under MIT License as well) -{ config, lib, pkgs, ... }: +{ config, lib, pkgs, nixpkgs, ... }: with lib; @@ -14,79 +14,8 @@ let in { - ###### interface - - options = { - nix = { - registry = mkOption { - type = types.attrsOf (types.submodule ( - let - referenceAttrs = with types; attrsOf (oneOf [ - str - int - bool - package - ]); - in - { config, name, ... }: - { - options = { - from = mkOption { - type = referenceAttrs; - example = { type = "indirect"; id = "nixpkgs"; }; - description = "The flake reference to be rewritten."; - }; - to = mkOption { - type = referenceAttrs; - example = { type = "github"; owner = "my-org"; repo = "my-nixpkgs"; }; - description = "The flake reference is rewritten to."; - }; - flake = mkOption { - type = types.nullOr types.attrs; - default = null; - example = literalExpression "nixpkgs"; - description = '' - The flake input is rewritten to. - ''; - }; - exact = mkOption { - type = types.bool; - default = true; - description = '' - Whether the reference needs to match exactly. If set, - a reference like nixpkgs does not - match with a reference like nixpkgs/nixos-20.03. - ''; - }; - }; - config = { - from = mkDefault { type = "indirect"; id = name; }; - to = mkIf (config.flake != null) (mkDefault - { - type = "path"; - path = config.flake.outPath; - } // filterAttrs - (n: _: n == "lastModified" || n == "rev" || n == "revCount" || n == "narHash") - config.flake); - }; - } - )); - default = { }; - description = "A system-wide flake registry."; - }; - }; - }; - - - ###### implementation - - config = { - environment.etc = { - "nix/registry.json".text = builtins.toJSON { - version = 2; - flakes = mapAttrsToList (_n: v: { inherit (v) from to exact; }) cfg.registry; - }; - }; - }; - + imports = [ + # Use options and config from upstream nix-flakes.nix + "${nixpkgs}/nixos/modules/config/nix-flakes.nix" + ]; }