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}