50 lines
1.3 KiB
Nix
50 lines
1.3 KiB
Nix
|
{ lib, ... }:
|
||
|
let
|
||
|
pkgs.hello = {
|
||
|
type = "derivation";
|
||
|
pname = "hello";
|
||
|
};
|
||
|
in
|
||
|
{
|
||
|
options = {
|
||
|
package = lib.mkPackageOption pkgs "hello" { };
|
||
|
|
||
|
namedPackage = lib.mkPackageOption pkgs "Hello" { default = [ "hello" ]; };
|
||
|
|
||
|
namedPackageSingletonDefault = lib.mkPackageOption pkgs "Hello" { default = "hello"; };
|
||
|
|
||
|
pathPackage = lib.mkPackageOption pkgs [ "hello" ] { };
|
||
|
|
||
|
packageWithExample = lib.mkPackageOption pkgs "hello" {
|
||
|
example = "pkgs.hello.override { stdenv = pkgs.clangStdenv; }";
|
||
|
};
|
||
|
|
||
|
packageWithPathExample = lib.mkPackageOption pkgs "hello" { example = [ "hello" ]; };
|
||
|
|
||
|
packageWithExtraDescription = lib.mkPackageOption pkgs "hello" {
|
||
|
extraDescription = "Example extra description.";
|
||
|
};
|
||
|
|
||
|
undefinedPackage = lib.mkPackageOption pkgs "hello" { default = null; };
|
||
|
|
||
|
nullablePackage = lib.mkPackageOption pkgs "hello" {
|
||
|
nullable = true;
|
||
|
default = null;
|
||
|
};
|
||
|
|
||
|
nullablePackageWithDefault = lib.mkPackageOption pkgs "hello" { nullable = true; };
|
||
|
|
||
|
packageWithPkgsText = lib.mkPackageOption pkgs "hello" { pkgsText = "myPkgs"; };
|
||
|
|
||
|
packageFromOtherSet =
|
||
|
let
|
||
|
myPkgs = {
|
||
|
hello = pkgs.hello // {
|
||
|
pname = "hello-other";
|
||
|
};
|
||
|
};
|
||
|
in
|
||
|
lib.mkPackageOption myPkgs "hello" { };
|
||
|
};
|
||
|
}
|