at 25.11-pre 1.7 kB view raw
1{ lib, ... }: 2let 3 pkgs.hello = { 4 type = "derivation"; 5 pname = "hello"; 6 }; 7in 8{ 9 options = { 10 package = lib.mkPackageOption pkgs "hello" { }; 11 12 namedPackage = lib.mkPackageOption pkgs "Hello" { 13 default = [ "hello" ]; 14 }; 15 16 namedPackageSingletonDefault = lib.mkPackageOption pkgs "Hello" { 17 default = "hello"; 18 }; 19 20 pathPackage = lib.mkPackageOption pkgs [ "hello" ] { }; 21 22 packageWithExample = lib.mkPackageOption pkgs "hello" { 23 example = "pkgs.hello.override { stdenv = pkgs.clangStdenv; }"; 24 }; 25 26 packageWithPathExample = lib.mkPackageOption pkgs "hello" { 27 example = [ "hello" ]; 28 }; 29 30 packageWithExtraDescription = lib.mkPackageOption pkgs "hello" { 31 extraDescription = "Example extra description."; 32 }; 33 34 undefinedPackage = lib.mkPackageOption pkgs "hello" { 35 default = null; 36 }; 37 38 nullablePackage = lib.mkPackageOption pkgs "hello" { 39 nullable = true; 40 default = null; 41 }; 42 43 nullablePackageWithDefault = lib.mkPackageOption pkgs "hello" { 44 nullable = true; 45 }; 46 47 packageWithPkgsText = lib.mkPackageOption pkgs "hello" { 48 pkgsText = "myPkgs"; 49 }; 50 51 packageFromOtherSet = 52 let 53 myPkgs = { 54 hello = pkgs.hello // { 55 pname = "hello-other"; 56 }; 57 }; 58 in 59 lib.mkPackageOption myPkgs "hello" { }; 60 61 packageInvalidIdentifier = 62 let 63 myPkgs."123"."with\"quote" = { inherit (pkgs) hello; }; 64 in 65 lib.mkPackageOption myPkgs [ "123" "with\"quote" "hello" ] { }; 66 67 packageInvalidIdentifierExample = lib.mkPackageOption pkgs "hello" { 68 example = [ 69 "123" 70 "with\"quote" 71 "hello" 72 ]; 73 }; 74 }; 75}