Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Hvornum <anton.feeds@gmail.com>2021-04-29 14:22:38 +0200
committerAnton Hvornum <anton.feeds@gmail.com>2021-04-29 14:22:38 +0200
commitb59a40606974a82e1d99751fd68818c3b7b0fe0f (patch)
tree32c902b032fd2d1072ed81d6b4aed1dd1f3de883
parentfb56fa3c5f3b76773d5c6a00a97f4dfdda5cc573 (diff)
Adding on_pacstrap hook for installation. As well as a plugins listing that plugins can hook in to in order to be called during specific on_<event> calls.
-rw-r--r--archinstall/__init__.py2
-rw-r--r--archinstall/lib/installer.py7
-rw-r--r--archinstall/lib/plugins.py1
3 files changed, 9 insertions, 1 deletions
diff --git a/archinstall/__init__.py b/archinstall/__init__.py
index e2c7ea62..82bba81e 100644
--- a/archinstall/__init__.py
+++ b/archinstall/__init__.py
@@ -14,6 +14,7 @@ from .lib.packages import *
from .lib.output import *
from .lib.storage import *
from .lib.hardware import *
+from .lin.plugins import plugins
__version__ = "2.2.0"
@@ -32,7 +33,6 @@ for arg in sys.argv[1:]:
else:
positionals.append(arg)
-
# TODO: Learn the dark arts of argparse...
# (I summon thee dark spawn of cPython)
diff --git a/archinstall/lib/installer.py b/archinstall/lib/installer.py
index a7b36481..51539d2c 100644
--- a/archinstall/lib/installer.py
+++ b/archinstall/lib/installer.py
@@ -10,6 +10,7 @@ from .systemd import Networkd
from .output import log
from .storage import storage
from .hardware import *
+from .plugins import plugins
# Any package that the Installer() is responsible for (optional and the default ones)
__packages__ = ["base", "base-devel", "linux-firmware", "linux", "linux-lts", "linux-zen", "linux-hardened"]
@@ -126,6 +127,12 @@ class Installer():
def pacstrap(self, *packages, **kwargs):
if type(packages[0]) in (list, tuple): packages = packages[0]
+
+ for plugin in plugins.values():
+ if hasattr(plugin, 'on_pacstrap'):
+ if (result := plugin.on_pacstrap(packages)):
+ packages = result
+
self.log(f'Installing packages: {packages}', level=logging.INFO)
if (sync_mirrors := sys_command('/usr/bin/pacman -Syy')).exit_code == 0:
diff --git a/archinstall/lib/plugins.py b/archinstall/lib/plugins.py
new file mode 100644
index 00000000..adf900b9
--- /dev/null
+++ b/archinstall/lib/plugins.py
@@ -0,0 +1 @@
+plugins = {} \ No newline at end of file