| 2 Mar 2025 |
infinisil | * loudgolem: Done :) | 04:27:13 |
| 6 Mar 2025 |
mr-qubo | Is there a mkAfter but for strings? I want to append flags to nixos option programs.captive-browser.browser, and I have no idea how. | 14:40:14 |
nbp | mkAfter is for any option, so yes, unless you are using dependent strings which are ordered based on dependencies. | 14:42:52 |
Matt Sturgeon | mkOrder (+ mkBefore & mkAfter) affects the order definitions get merged in, so it is applicable to any mergable type. | 14:42:57 |
nbp | * mkAfter is for any option, so yes, unless you are using dependent strings which are merged based on dependencies. | 14:43:28 |
mr-qubo | I've tried using mkAfter and it just replaced the strings enitrely. | 14:43:55 |
mr-qubo | * I've tried using mkAfter and it just replaced the strings entirely. | 14:44:00 |
mr-qubo | * I've tried using mkAfter and it just replaced the string entirely. | 14:44:04 |
nbp | That's because you do not have the same priority level. | 14:44:19 |
nbp | Or there is a problem with the merge function of the option. | 14:45:37 |
Matt Sturgeon | Sounds like your definition has a higher override priority. For example a "normal" definition will not be merged with a "default" definition, because merging is only done for definitions of whatever happens to be the highest priority | 14:45:41 |
mr-qubo | Yes, I want to merge with the default value of that option. | 14:46:34 |
mr-qubo | This module needs the flags, which are passed in default value. | 14:46:56 |
nbp | then you need mkDefault (mkAfter suffix) | 14:47:00 |
Matt Sturgeon | Assuming the option's type actually supports merging, you need to make your definition have the same override priority. This is probably either mkDefault or more likely mkOptionDefault | 14:47:30 |
nbp | * then you need mkOptionDefault (mkAfter suffix) — editted: wrong function name | 14:48:21 |
Matt Sturgeon | If the option doesn't support merging, a less idiomatic solution would be to read the option's default value and use that in your overriding definition:
foo = options.foo.default + "suffix";
This is ugly and fragile, but could work as a hacky solution if necessary. | 14:50:45 |
mr-qubo | mkOptionDefault raises an error. The type is types.str. I'll guess I'll go with options..default then. | 15:24:07 |
Matt Sturgeon | types.str has merge = mergeEqualOption, which essentially means it doesn't support merging multiple definitions | 15:58:40 |
| 7 Mar 2025 |
| Qyriad changed their display name from Qyriad to qyriad. | 16:43:26 |
| 8 Mar 2025 |
| Qyriad changed their display name from qyriad to Qyriad. | 21:41:03 |
| 9 Mar 2025 |
| jappie joined the room. | 09:23:03 |
| 12 Mar 2025 |
Sam Lehman | Is there a "best-practices" way of iterating over many option names/values in a config? Particularly such that I can test the existence of many options without losing the benefits of lazy eval. | 12:09:50 |
Sam Lehman | e.g. I'm trying to persist directories using impermanence by enumerating all services*.dataDir options, then appending its value to environment.persistence."/persist".directories with lib.optional config.services.<name>.enable config.services.<name>.dataDir | 12:10:09 |
nbp | Unfortunately no. So far people have been using map within modules to iterate over the individual definitions, and some have used mkMerge / mkIf to make their definitions conditional. I have no found any way to generalize the processing of multiple option definitions into 1 or multiple at the moment. If you have any idea of what might be a good API, feel free to suggest, and people in this channel might be able to provide an implementation (if possible) | 14:18:09 |
| vidariondr joined the room. | 21:07:51 |
| 22 Mar 2025 |
| isabel joined the room. | 00:42:48 |
| vaw joined the room. | 21:26:12 |
| 27 Mar 2025 |
| ·☽•Nameless☆•777 · ± changed their profile picture. | 04:46:05 |
| ·☽•Nameless☆•777 · ± changed their profile picture. | 07:58:24 |