!wfudwzqQUiJYJnqfSY:nixos.org

NixOS Module System

149 Members
31 Servers

Load older messages


SenderMessageTime
22 Mar 2024
@t3rminal-filth:matrix.orgterminalfilth set a profile picture.05:24:39
@t3rminal-filth:matrix.orgterminalfilth changed their profile picture.05:24:49
23 Mar 2024
@federicodschonborn:matrix.orgFederico Damián Schonborn joined the room.00:37:24
@ss:someonex.netSomeoneSerge (Ever OOMed by Element) changed their display name from SomeoneSerge (hash-versioned python modules when) to SomeoneSerge (migrating synapse).02:11:12
27 Mar 2024
@hexa:lossy.networkhexais there a way to set an optional option default?23:21:25
@hexa:lossy.networkhexa
  default = if foo then "bar" else omit;
23:21:46
@hexa:lossy.networkhexa *
  default = if foo then "bar" else omit; # if not foo, consider the value unset
23:22:21
@hexa:lossy.networkhexauhhhhhh23:25:58
@hexa:lossy.networkhexacan I like23:26:00
@hexa:lossy.networkhexa
  bla = mkOption {
  } // lib.optionalAttrs (cond) {
    default = "bar";
  };
23:26:37
@hexa:lossy.networkhexaprobably can23:26:51
@infinidoge:matrix.orgMigrated to @infinidoge:inx.moeI think that would work23:27:14
@infinidoge:matrix.orgMigrated to @infinidoge:inx.moeMight need parenthesis, but even then23:27:23
@hexa:lossy.networkhexa🙂23:27:35
@infinidoge:matrix.orgMigrated to @infinidoge:inx.moe If it doesn't work, you can definitely do it through config though 23:28:44
@infinidoge:matrix.orgMigrated to @infinidoge:inx.moe
config.bla = lib.mkIf cond (lib.mkDefault "value");
23:29:08
@hexa:lossy.networkhexayeah, but that's not really discoverable23:29:36
@hexa:lossy.networkhexa *
  bla = mkOption {
    defaultText = ''
      Something if cond, else unset
    '';
  } // lib.optionalAttrs (cond) {
    default = "bar";
  };
23:30:03
@hexa:lossy.networkhexaupdate the example with defaultText 23:30:12
@infinidoge:matrix.orgMigrated to @infinidoge:inx.moeYou're already gonna need to use the documentation text override, so I don't think it would really affect the discoverability that much23:30:19
@hexa:lossy.networkhexathat was always going to be the case23:30:32
@hexa:lossy.networkhexabut defaultText makes the condition discoverable23:30:39
@hexa:lossy.networkhexaas opposed to hiding it in the implementation23:30:47
@infinidoge:matrix.orgMigrated to @infinidoge:inx.moeMy example was just how the default part could be done, wasn't a self-contained example23:31:58
@hexa:lossy.networkhexaI understood config as the implementation section of the module23:32:55
@infinidoge:matrix.orgMigrated to @infinidoge:inx.moeIt's... weird, unfortunately. Options are mostly the interface, but with defaults they are somewhat load bearing23:34:02
@infinidoge:matrix.orgMigrated to @infinidoge:inx.moe All default does is assign a value with a priority, the end result here is the same 23:34:15
@infinidoge:matrix.orgMigrated to @infinidoge:inx.moeThe benefit of it being part of the option is that it can be evaluated without the rest of it for the purpose of documentation and inspection, but in the end it's a modifiable part of the code nonetheless23:34:52
@infinidoge:matrix.orgMigrated to @infinidoge:inx.moeThe main issue with doing it the config way is just that it makes that part of it grouped further away, which isn't particularly good23:36:20
@infinidoge:matrix.orgMigrated to @infinidoge:inx.moeIt is useful to know if you want to add defaults to other modules though :)23:36:32

Show newer messages


Back to Room ListRoom Version: 10