From 523fdd4471934aae878b1da2e222cac9a0d79a00 Mon Sep 17 00:00:00 2001 From: Peter Foley Date: Sat, 9 May 2026 12:43:31 -0400 Subject: [PATCH] Avoid KeyError when a bls directory is empty If a bls directory is empty, eclean-kernel fails with a KeyError. This can happen when too many kernels build up and the /boot partition is filled to the point that writing the initramfs fails. Fixes #60 e.g. File "/home/peter/eclean-kernel/.venv/bin/eclean-kernel", line 10, in 12:42 [54/433] sys.exit(setuptools_main()) ~~~~~~~~~~~~~~~^^ File "/home/peter/eclean-kernel/ecleankernel/__main__.py", line 391, in setuptools_main sys.exit(main(sys.argv[1:])) ~~~~^^^^^^^^^^^^^^ File "/home/peter/eclean-kernel/ecleankernel/__main__.py", line 236, in main kernels = layout.find_kernels(exclusions=exclusions) File "/home/peter/eclean-kernel/ecleankernel/layout/blspec.py", line 130, in find_kernels kernels[(ver, "bls")].all_files.append( ~~~~~~~^^^^^^^^^^^^^^ KeyError: ('7.0.1-gentoo-dist', 'bls') --- ecleankernel/layout/blspec.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ecleankernel/layout/blspec.py b/ecleankernel/layout/blspec.py index 405f861..891bec0 100644 --- a/ecleankernel/layout/blspec.py +++ b/ecleankernel/layout/blspec.py @@ -127,8 +127,9 @@ def find_kernels(self, self.name_map.get(fn, KernelFileType.MISC), dir_path / fn, k, ver, module_dict, exclusions) - kernels[(ver, "bls")].all_files.append( - EmptyDirectory(dir_path)) + if (ver, "bls") in kernels: + kernels[(ver, "bls")].all_files.append( + EmptyDirectory(dir_path)) # collect from ESP/Linux if self.ukidir.is_dir():