OSDN Git Service

[initcpiocfg] Refactor, improve testability
authorAdriaan de Groot <groot@kde.org>
Tue, 21 Sep 2021 11:13:21 +0000 (13:13 +0200)
committerAdriaan de Groot <groot@kde.org>
Tue, 21 Sep 2021 11:13:21 +0000 (13:13 +0200)
- don't chain directly from modify_mkinitcpio_conf() to the
  function that writes the file write_mkinitcpio_lines();
  split into "figure out what needs to be written" and calling
  that writing-function, so that we can test / check / log
  if needed between the two.

src/modules/initcpiocfg/main.py

index b91a460..d89c0f9 100644 (file)
@@ -125,12 +125,16 @@ def write_mkinitcpio_lines(hooks, modules, files, root_mount_point):
         mkinitcpio_file.write("\n".join(mklins) + "\n")
 
 
-def modify_mkinitcpio_conf(partitions, root_mount_point):
+def find_initcpio_features(partitions, root_mount_point):
     """
-    Modifies mkinitcpio.conf
+    Returns a tuple (hooks, modules, files) needed to support
+    the given @p partitions (filesystems types, encryption, etc)
+    in the target.
 
-    :param partitions:
-    :param root_mount_point:
+    :param partitions: (from GS)
+    :param root_mount_point: (from GS)
+
+    :return 3-tuple of lists
     """
     hooks = ["base", "udev", "autodetect", "modconf", "block", "keyboard", "keymap"]
     modules = []
@@ -198,7 +202,7 @@ def modify_mkinitcpio_conf(partitions, root_mount_point):
     else:
         hooks.append("fsck")
 
-    write_mkinitcpio_lines(hooks, modules, files, root_mount_point)
+    return (hooks, modules, files)
 
 
 def run():
@@ -219,6 +223,7 @@ def run():
         return (_("Configuration Error"),
                 _("No root mount point is given for <pre>{!s}</pre> to use." ).format("initcpiocfg"))
 
-    modify_mkinitcpio_conf(partitions, root_mount_point)
+    hooks, modules, files = find_initcpio_features(partitions, root_mount_point)
+    write_mkinitcpio_lines(hooks, modules, files, root_mount_point)
 
     return None