|
| 1 | +# Структура {#structure} |
| 2 | + |
| 3 | +## Аргументы функции {#function-arguments} |
| 4 | +- `name`: строка, представляющая имя райса. |
| 5 | +- `inherits`: список строк - имена райсов, чьи конфигурации будут унаследованы текущим райсом. |
| 6 | +- `inheritanceOnly`: булевое значение (`true` или `false`), которое определяет, будет ли этот райс добавлен в [список систем, сгенерированный для каждого хоста и райса](/TODO), или же он используется только для наследования. |
| 7 | +- `myconfig`: устанавливает её значение в `config.${myconfigName}`, если `config.${myconfigName}.rice` соответствует текущему райсу. |
| 8 | +- `nixos`: устанавливает её значение в `config`, если `isHomeManager` равен `false` и `config.${myconfigName}.rice` соответствует текущему райсу. |
| 9 | +- `home`: устанавливает её значение в `config`, если `isHomeManager` равен `true` и `config.${myconfigName}.rice` соответствует текущему райсу. В противном случае, если `config.${myconfigName}.rice` соответствует текущему райсу, устанавливает её значение в `config.home-manager.users.${homeManagerUser}`. |
| 10 | + |
| 11 | +## Передаваемые аргументы {#passed-arguments} |
| 12 | +Список аргументов, которые передаются в `[myconfig|nixos|home]`, если их тип - `lambda`: |
| 13 | + |
| 14 | +- `name`: тот же `name`, что и в аргументах `delib.rice`. |
| 15 | +- `myconfig`: равен `config.${myConfigName}`. |
| 16 | +- `cfg`: равен `config.${myConfigName}.rices.${delib.rice :: name}`. |
| 17 | + |
| 18 | +## Псевдокод {#pseudocode} |
| 19 | +```nix |
| 20 | +delib.rice { |
| 21 | + name = ""; |
| 22 | +
|
| 23 | + inherits = []; |
| 24 | +
|
| 25 | + inheritanceOnly = []; |
| 26 | +
|
| 27 | + # если config.${myconfigName}.rice == name |
| 28 | + # то {config.${myConfigName} = ...;} |
| 29 | + # иначе {} |
| 30 | + myconfig = {name, cfg, myconfig, ...}: {}; |
| 31 | +
|
| 32 | + # если config.${myconfigName}.rice == name |
| 33 | + # то {config = ...;} |
| 34 | + # иначе {} |
| 35 | + nixos = {name, cfg, myconfig, ...}: {}; |
| 36 | +
|
| 37 | + # если config.${myconfigName}.rice == name, то |
| 38 | + # если isHomeManager |
| 39 | + # то {config = ...;} |
| 40 | + # иначе {config.home-manager.users.${homeManagerUser} = ...;} |
| 41 | + # иначе {} |
| 42 | + home = {name, cfg, myconfig, ...}: {}; |
| 43 | +} |
| 44 | +``` |
0 commit comments