15 Jun 2023 |
@elvishjerricco:matrix.org | that's pretty cool | 14:26:49 |
@lily:lily.flowers | I'll share if you want. Just don't look at the crimes I did to make LUKS work... | 14:27:12 |
@elvishjerricco:matrix.org | lol yea it'd probably be helpful for testing it | 14:28:42 |
@lily:lily.flowers | Okay, I'll clean up the LUKS a little and post it | 14:29:05 |
K900 (deprecated) | Time to RIIR Plymouth? | 14:36:10 |
@elvishjerricco:matrix.org | In reply to @k900:conduit.0upti.me Time to RIIR Plymouth? I do legitimately wonder how hard that would be. Like it'd be cool to scope out just how much stuff plymouth actually does. I'm sure samueldr has actually done most of this for his mobile NixOS stage 1 boot splash / osk | 14:38:59 |
@uep:matrix.org | Hm. Helping someone with an install, they did:
fileSystems."/boot" =
{
device = "/dev/disk/by-uuid/7CBF-1A69";
fsType = "zfs";
};
(wrong fstype)
| 16:12:37 |
@uep:matrix.org | but the result is that it inferred a pool name of "" | 16:12:54 |
@uep:matrix.org | and added a job to import that pool, which is of course failing. | 16:13:13 |
@uep:matrix.org | seems like there's room for an assertion that the pool name isn't blank | 16:13:28 |
@elvishjerricco:matrix.org | Oh that's... interesting | 16:13:34 |
@elvishjerricco:matrix.org | Yea for sure | 16:13:37 |
@uep:matrix.org | somewhere in here:
datasetToPool = x: elemAt (splitString "/" x) 0;
fsToPool = fs: datasetToPool fs.device;
zfsFilesystems = filter (x: x.fsType == "zfs") config.system.build.fileSystems;
allPools = unique ((map fsToPool zfsFilesystems) ++ cfgZfs.extraPools);
rootPools = unique (map fsToPool (filter fsNeededForBoot zfsFilesystems));
| 16:22:40 |
@uep:matrix.org | or, misplaced in the thing that creates the import service, I guess | 16:23:00 |
@uep:matrix.org | * or, misplaced in the thing that creates the import service, just below, I guess | 16:23:08 |
@elvishjerricco:matrix.org | I'd just add a NixOS style assertion like assertions = [{ assertion = !(elem "" allPools); message = "pls no"; }] | 16:24:53 |
@uep:matrix.org | well, that will fail but not helpfully? | 16:26:15 |
@elvishjerricco:matrix.org | I mean failure is the only useful outcome | 16:26:31 |
@uep:matrix.org | but yes, it does fit there | 16:26:33 |
@elvishjerricco:matrix.org | So the message just needs to be helpful | 16:26:37 |
@elvishjerricco:matrix.org | I just didn't bother to write one because I'm on my phone :P | 16:26:50 |
@uep:matrix.org | yeah but it cant point to the dataset | 16:27:05 |
@elvishjerricco:matrix.org | Sure it can | 16:27:12 |
@elvishjerricco:matrix.org | Oh | 16:27:16 |
@elvishjerricco:matrix.org | Wait I see what you mean | 16:27:20 |
@elvishjerricco:matrix.org | It can name the mountpoint though | 16:27:28 |
@uep:matrix.org | yeah, all it can point to is the blank at that point | 16:27:32 |
@elvishjerricco:matrix.org | It's not uncommon to have more expensive, redundant computations in the message field, since it's lazily evaluated. Sometimes people throw in calculations that would error if the assertion isn't false | 16:28:23 |
@uep:matrix.org | fair | 16:28:55 |
@elvishjerricco:matrix.org | So the message can calculate which mountpoints are busted | 16:28:57 |