about summary refs log tree commit diff
path: root/modules/nixpkgs.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/nixpkgs.nix')
-rw-r--r--modules/nixpkgs.nix34
1 files changed, 34 insertions, 0 deletions
diff --git a/modules/nixpkgs.nix b/modules/nixpkgs.nix
new file mode 100644
index 0000000..1e55876
--- /dev/null
+++ b/modules/nixpkgs.nix
@@ -0,0 +1,34 @@
+{ config, lib, ... }:
+
+let
+  allowedUnf = config.nixpkgs.allowedUnfree;
+  allowedIns = config.nixpkgs.allowedInsecure;
+in
+{
+  options.nixpkgs = {
+    allowedUnfree = lib.mkOption {
+      type = lib.types.listOf lib.types.str;
+      default = [ ];
+      description = ''
+        Allows for unfree packages by their name.
+      '';
+    };
+
+    allowedInsecure = lib.mkOption {
+      type = lib.types.listOf lib.types.str;
+      default = [ ];
+      description = ''
+        Allows for insecure packages by their name.
+      '';
+    };
+  };
+
+  config = lib.mkMerge [
+    (lib.mkIf
+      (allowedUnf != [ ])
+      { nixpkgs.config.allowUnfreePredicate = (pkg: __elem (lib.getName pkg) allowedUnf); })
+    (lib.mkIf
+      (allowedIns != [ ])
+      { nixpkgs.config.allowInsecurePredicate = (pkg: __elem (lib.getName pkg) allowedIns); })
+  ];
+}