allow use of readOnly attributes in modular function output types

Signed-off-by: Kiara Grouwstra <kiara@procolix.eu>
This commit is contained in:
Kiara Grouwstra 2025-11-07 13:47:46 +01:00
parent 98b39012f0
commit 4f50602ee8
Signed by: kiara
SSH key fingerprint: SHA256:COspvLoLJ5WC5rFb9ZDe5urVCkK4LJZOsjfF4duRJFU
3 changed files with 15 additions and 10 deletions

View file

@ -140,6 +140,7 @@ in
type = functionType;
readOnly = true;
default = {
type-output = false;
input-type = submodule {
options = {
deployment-name = mkOption {
@ -159,6 +160,7 @@ in
type = functionType;
readOnly = true;
default = {
type-output = false;
input-type = submodule {
options = {
deployment-name = mkOption {

View file

@ -45,6 +45,11 @@ let
in
{
options = {
type-output = mkOption {
type = types.bool;
description = "Whether to type function output. This may need to be disabled if the output type contains read-only attributes.";
default = true;
};
input-type = mkOption {
type = optionType;
};
@ -54,7 +59,7 @@ in
function-type = mkOption {
type = optionType;
readOnly = true;
default = functionTo config.output-type;
default = functionTo (if config.type-output then config.output-type else types.unspecified);
};
wrapper-type = mkOption {
type = optionType;
@ -65,7 +70,7 @@ in
type = config.input-type;
};
output = mkOption {
type = config.output-type;
type = if config.type-output then config.output-type else types.unspecified;
};
};
});

View file

@ -202,8 +202,7 @@ in
};
run = mkOption {
type = types.package;
# error: The option `ssh-deployment.ssh-host.run' is read-only, but it's set multiple times.
# readOnly = true;
readOnly = true;
default =
let
inherit (ssh-host.config)
@ -282,8 +281,7 @@ in
};
run = mkOption {
type = types.package;
# error: The option `tf-deployment.tf-host.run' is read-only, but it's set multiple times.
# readOnly = true;
readOnly = true;
default =
let
inherit (tf-host.config)
@ -354,8 +352,7 @@ in
};
run = mkOption {
type = types.package;
# error: The option `tf-deployment.tf-host.run' is read-only, but it's set multiple times.
# readOnly = true;
readOnly = true;
default =
let
inherit (tf-host.config)
@ -499,8 +496,7 @@ in
};
run = mkOption {
type = types.package;
# error: The option `tf-deployment.tf-host.run' is read-only, but it's set multiple times.
# readOnly = true;
readOnly = true;
default =
let
inherit (tf-host.config)
@ -587,6 +583,7 @@ in
};
run = mkOption {
type = types.package;
readOnly = true;
default =
let
inherit (tf-netbox-store-ips.config)
@ -614,6 +611,7 @@ in
inherit httpBackend;
run = mkOption {
type = types.package;
readOnly = true;
default =
let
inherit (tf-netbox-get-ip.config)