at 24.11-pre 1.3 kB view raw
1{ lib, ... }: let 2 pkgs.hello = { 3 type = "derivation"; 4 pname = "hello"; 5 }; 6in { 7 options = { 8 package = lib.mkPackageOption pkgs "hello" { }; 9 10 namedPackage = lib.mkPackageOption pkgs "Hello" { 11 default = [ "hello" ]; 12 }; 13 14 namedPackageSingletonDefault = lib.mkPackageOption pkgs "Hello" { 15 default = "hello"; 16 }; 17 18 pathPackage = lib.mkPackageOption pkgs [ "hello" ] { }; 19 20 packageWithExample = lib.mkPackageOption pkgs "hello" { 21 example = "pkgs.hello.override { stdenv = pkgs.clangStdenv; }"; 22 }; 23 24 packageWithPathExample = lib.mkPackageOption pkgs "hello" { 25 example = [ "hello" ]; 26 }; 27 28 packageWithExtraDescription = lib.mkPackageOption pkgs "hello" { 29 extraDescription = "Example extra description."; 30 }; 31 32 undefinedPackage = lib.mkPackageOption pkgs "hello" { 33 default = null; 34 }; 35 36 nullablePackage = lib.mkPackageOption pkgs "hello" { 37 nullable = true; 38 default = null; 39 }; 40 41 nullablePackageWithDefault = lib.mkPackageOption pkgs "hello" { 42 nullable = true; 43 }; 44 45 packageWithPkgsText = lib.mkPackageOption pkgs "hello" { 46 pkgsText = "myPkgs"; 47 }; 48 49 packageFromOtherSet = let myPkgs = { 50 hello = pkgs.hello // { pname = "hello-other"; }; 51 }; in lib.mkPackageOption myPkgs "hello" { }; 52 }; 53}