Skip to content

Commit f33e4be

Browse files
committed
Refactor arch_config_handler to use DI
1 parent 64567a7 commit f33e4be

File tree

5 files changed

+38
-27
lines changed

5 files changed

+38
-27
lines changed

archinstall/lib/args.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -549,6 +549,3 @@ def _cleanup_config(self, config: Namespace | dict[str, Any]) -> dict[str, Any]:
549549
clean_args[key] = val
550550

551551
return clean_args
552-
553-
554-
arch_config_handler: ArchConfigHandler = ArchConfigHandler()

archinstall/main.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import traceback
99
from pathlib import Path
1010

11-
from archinstall.lib.args import arch_config_handler
11+
from archinstall.lib.args import ArchConfigHandler
1212
from archinstall.lib.disk.utils import disk_layouts
1313
from archinstall.lib.hardware import SysInfo
1414
from archinstall.lib.network.wifi_handler import WifiHandler
@@ -78,6 +78,8 @@ def run() -> int:
7878
OR straight as a module: python -m archinstall
7979
In any case we will be attempting to load the provided script to be run from the scripts/ folder
8080
"""
81+
arch_config_handler = ArchConfigHandler()
82+
8183
if '--help' in sys.argv or '-h' in sys.argv:
8284
arch_config_handler.print_help()
8385
return 0
@@ -122,7 +124,7 @@ def run() -> int:
122124
mod_name = f'archinstall.scripts.{script}'
123125
# by loading the module we'll automatically run the script
124126
module = importlib.import_module(mod_name)
125-
module.main()
127+
module.main(arch_config_handler)
126128

127129
return 0
128130

archinstall/scripts/guided.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
import os
22
import time
3-
from pathlib import Path
43

54
from archinstall.lib.applications.application_handler import ApplicationHandler
6-
from archinstall.lib.args import arch_config_handler
5+
from archinstall.lib.args import ArchConfigHandler
76
from archinstall.lib.authentication.authentication_handler import AuthenticationHandler
87
from archinstall.lib.configuration import ConfigurationOutput
98
from archinstall.lib.disk.filesystem import FilesystemHandler
@@ -22,7 +21,10 @@
2221
from archinstall.lib.translationhandler import tr
2322

2423

25-
def show_menu(mirror_list_handler: MirrorListHandler) -> None:
24+
def show_menu(
25+
arch_config_handler: ArchConfigHandler,
26+
mirror_list_handler: MirrorListHandler,
27+
) -> None:
2628
upgrade = check_version_upgrade()
2729
title_text = 'Archlinux'
2830

@@ -44,7 +46,7 @@ def show_menu(mirror_list_handler: MirrorListHandler) -> None:
4446

4547

4648
def perform_installation(
47-
mountpoint: Path,
49+
arch_config_handler: ArchConfigHandler,
4850
mirror_list_handler: MirrorListHandler,
4951
auth_handler: AuthenticationHandler,
5052
application_handler: ApplicationHandler,
@@ -57,6 +59,7 @@ def perform_installation(
5759
start_time = time.monotonic()
5860
info('Starting installation...')
5961

62+
mountpoint = arch_config_handler.args.mountpoint
6063
config = arch_config_handler.config
6164

6265
if not config.disk_config:
@@ -188,14 +191,17 @@ def perform_installation(
188191
pass
189192

190193

191-
def main() -> None:
194+
def main(arch_config_handler: ArchConfigHandler | None = None) -> None:
195+
if arch_config_handler is None:
196+
arch_config_handler = ArchConfigHandler()
197+
192198
mirror_list_handler = MirrorListHandler(
193199
offline=arch_config_handler.args.offline,
194200
verbose=arch_config_handler.args.verbose,
195201
)
196202

197203
if not arch_config_handler.args.silent:
198-
show_menu(mirror_list_handler)
204+
show_menu(arch_config_handler, mirror_list_handler)
199205

200206
config = ConfigurationOutput(arch_config_handler.config)
201207
config.write_debug()
@@ -211,14 +217,14 @@ def main() -> None:
211217
aborted = True
212218

213219
if aborted:
214-
return main()
220+
return main(arch_config_handler)
215221

216222
if arch_config_handler.config.disk_config:
217223
fs_handler = FilesystemHandler(arch_config_handler.config.disk_config)
218224
fs_handler.perform_filesystem_operations()
219225

220226
perform_installation(
221-
arch_config_handler.args.mountpoint,
227+
arch_config_handler,
222228
mirror_list_handler,
223229
AuthenticationHandler(),
224230
ApplicationHandler(),

archinstall/scripts/minimal.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
from pathlib import Path
2-
31
from archinstall.default_profiles.minimal import MinimalProfile
4-
from archinstall.lib.args import arch_config_handler
2+
from archinstall.lib.args import ArchConfigHandler
53
from archinstall.lib.configuration import ConfigurationOutput
64
from archinstall.lib.disk.disk_menu import DiskLayoutConfigurationMenu
75
from archinstall.lib.disk.filesystem import FilesystemHandler
@@ -14,7 +12,8 @@
1412
from archinstall.lib.profile.profiles_handler import profile_handler
1513

1614

17-
def perform_installation(mountpoint: Path) -> None:
15+
def perform_installation(arch_config_handler: ArchConfigHandler) -> None:
16+
mountpoint = arch_config_handler.args.mountpoint
1817
config = arch_config_handler.config
1918

2019
if not config.disk_config:
@@ -59,7 +58,10 @@ def perform_installation(mountpoint: Path) -> None:
5958
info(' * devel (password: devel)')
6059

6160

62-
def main() -> None:
61+
def main(arch_config_handler: ArchConfigHandler | None = None) -> None:
62+
if arch_config_handler is None:
63+
arch_config_handler = ArchConfigHandler()
64+
6365
disk_config = DiskLayoutConfigurationMenu(disk_layout_config=None).run()
6466
arch_config_handler.config.disk_config = disk_config
6567

@@ -77,13 +79,13 @@ def main() -> None:
7779
aborted = True
7880

7981
if aborted:
80-
return main()
82+
return main(arch_config_handler)
8183

8284
if arch_config_handler.config.disk_config:
8385
fs_handler = FilesystemHandler(arch_config_handler.config.disk_config)
8486
fs_handler.perform_filesystem_operations()
8587

86-
perform_installation(arch_config_handler.args.mountpoint)
88+
perform_installation(arch_config_handler)
8789

8890

8991
if __name__ == '__main__':

archinstall/scripts/only_hd.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from pathlib import Path
22

3-
from archinstall.lib.args import arch_config_handler
3+
from archinstall.lib.args import ArchConfigHandler
44
from archinstall.lib.configuration import ConfigurationOutput
55
from archinstall.lib.disk.filesystem import FilesystemHandler
66
from archinstall.lib.disk.utils import disk_layouts
@@ -9,7 +9,7 @@
99
from archinstall.lib.output import debug, error
1010

1111

12-
def show_menu() -> None:
12+
def show_menu(arch_config_handler: ArchConfigHandler) -> None:
1313
global_menu = GlobalMenu(arch_config_handler.config)
1414
global_menu.disable_all()
1515

@@ -21,12 +21,13 @@ def show_menu() -> None:
2121
global_menu.run()
2222

2323

24-
def perform_installation(mountpoint: Path) -> None:
24+
def perform_installation(arch_config_handler: ArchConfigHandler) -> None:
2525
"""
2626
Performs the installation steps on a block device.
2727
Only requirement is that the block devices are
2828
formatted and setup prior to entering this function.
2929
"""
30+
mountpoint = arch_config_handler.args.mountpoint
3031
config = arch_config_handler.config
3132

3233
if not config.disk_config:
@@ -55,9 +56,12 @@ def perform_installation(mountpoint: Path) -> None:
5556
debug(f'Disk states after installing:\n{disk_layouts()}')
5657

5758

58-
def main() -> None:
59+
def main(arch_config_handler: ArchConfigHandler | None = None) -> None:
60+
if arch_config_handler is None:
61+
arch_config_handler = ArchConfigHandler()
62+
5963
if not arch_config_handler.args.silent:
60-
show_menu()
64+
show_menu(arch_config_handler)
6165

6266
config = ConfigurationOutput(arch_config_handler.config)
6367
config.write_debug()
@@ -73,13 +77,13 @@ def main() -> None:
7377
aborted = True
7478

7579
if aborted:
76-
return main()
80+
return main(arch_config_handler)
7781

7882
if arch_config_handler.config.disk_config:
7983
fs_handler = FilesystemHandler(arch_config_handler.config.disk_config)
8084
fs_handler.perform_filesystem_operations()
8185

82-
perform_installation(arch_config_handler.args.mountpoint)
86+
perform_installation(arch_config_handler)
8387

8488

8589
if __name__ == '__main__':

0 commit comments

Comments
 (0)