From 8b130a66287b829e7b6f9be0130df7231c7a6605 Mon Sep 17 00:00:00 2001 From: tv Date: Wed, 10 Feb 2016 19:06:32 +0100 Subject: krebs.nixpkgs.allowUnfreePredicate: init --- krebs/3modules/nixpkgs.nix | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 krebs/3modules/nixpkgs.nix (limited to 'krebs/3modules/nixpkgs.nix') diff --git a/krebs/3modules/nixpkgs.nix b/krebs/3modules/nixpkgs.nix new file mode 100644 index 00000000..4129f948 --- /dev/null +++ b/krebs/3modules/nixpkgs.nix @@ -0,0 +1,43 @@ +{ config, pkgs, lib, ... }: +with lib; +let + cfg = config.krebs.nixpkgs; + + out = { + options.krebs.nixpkgs = api; + config = mkIf cfg.enable imp; + }; + + api = { + enable = mkEnableOption "krebs.nixpkgs" // { default = true; }; + + allowUnfreePredicate = mkOption { + description = '' + This option is similar to `nixpkgs.config.allowUnfreePredicate' + but can be defined in several modules. An unfree package will be + allowed if any of the defined predicates returns true. + ''; + type = types.nullOr (mkOptionType { + name = "Predicate"; + check = isFunction; + merge = _locs: defs: pkg: let + evalPredicateDef = def: let + allow = def.value pkg; + in if cfg.verbose && allow + then trace "unfree ‘${pkg.name}’ allowed in ${def.file}" allow + else allow; + in any evalPredicateDef defs; + }); + default = null; + }; + + verbose = mkOption { + type = types.bool; + default = false; + }; + }; + + imp = mkIf (cfg.allowUnfreePredicate != null) { + nixpkgs.config.allowUnfreePredicate = cfg.allowUnfreePredicate; + }; +in out -- cgit v1.2.3 From 673853e092c211e26a08030f87f9c868c6442a71 Mon Sep 17 00:00:00 2001 From: tv Date: Sun, 14 Feb 2016 16:43:44 +0100 Subject: RIP specialArgs.lib --- krebs/3modules/nixpkgs.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'krebs/3modules/nixpkgs.nix') diff --git a/krebs/3modules/nixpkgs.nix b/krebs/3modules/nixpkgs.nix index 4129f948..5816b8a3 100644 --- a/krebs/3modules/nixpkgs.nix +++ b/krebs/3modules/nixpkgs.nix @@ -1,11 +1,11 @@ -{ config, pkgs, lib, ... }: -with lib; +{ config, lib, pkgs, ... }: +with config.krebs.lib; let cfg = config.krebs.nixpkgs; out = { options.krebs.nixpkgs = api; - config = mkIf cfg.enable imp; + config = lib.mkIf cfg.enable imp; }; api = { @@ -37,7 +37,7 @@ let }; }; - imp = mkIf (cfg.allowUnfreePredicate != null) { + imp = lib.mkIf (cfg.allowUnfreePredicate != null) { nixpkgs.config.allowUnfreePredicate = cfg.allowUnfreePredicate; }; in out -- cgit v1.2.3