Skip to content

Commit d43482e

Browse files
authored
Move run_custom_user_commands to fix an import cycle (#3254)
1 parent cb42003 commit d43482e

File tree

4 files changed

+22
-27
lines changed

4 files changed

+22
-27
lines changed

archinstall/lib/general.py

+2-19
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,12 @@
1616
from pathlib import Path
1717
from select import EPOLLHUP, EPOLLIN, epoll
1818
from shutil import which
19-
from typing import TYPE_CHECKING, Any, override
19+
from typing import Any, override
2020

2121
from .exceptions import RequirementError, SysCallError
22-
from .output import debug, error, info
22+
from .output import debug, error
2323
from .storage import storage
2424

25-
if TYPE_CHECKING:
26-
from .installer import Installer
27-
2825
# https://stackoverflow.com/a/43627833/929999
2926
_VT100_ESCAPE_REGEX = r'\x1B\[[?0-9;]*[a-zA-Z]'
3027
_VT100_ESCAPE_REGEX_BYTES = _VT100_ESCAPE_REGEX.encode()
@@ -479,20 +476,6 @@ def _pid_exists(pid: int) -> bool:
479476
return False
480477

481478

482-
def run_custom_user_commands(commands: list[str], installation: Installer) -> None:
483-
for index, command in enumerate(commands):
484-
script_path = f"/var/tmp/user-command.{index}.sh"
485-
chroot_path = f"{installation.target}/{script_path}"
486-
487-
info(f'Executing custom command "{command}" ...')
488-
with open(chroot_path, "w") as user_script:
489-
user_script.write(command)
490-
491-
SysCommand(f"arch-chroot {installation.target} bash {script_path}")
492-
493-
os.unlink(chroot_path)
494-
495-
496479
def secret(x: str) -> str:
497480
""" return * with len equal to to the input string """
498481
return '*' * len(x)

archinstall/lib/installer.py

+18-4
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,6 @@
5959
__accessibility_packages__ = ["brltty", "espeakup", "alsa-utils"]
6060

6161

62-
def accessibility_tools_in_use() -> bool:
63-
return os.system('systemctl is-active --quiet espeakup.service') == 0
64-
65-
6662
class Installer:
6763
def __init__(
6864
self,
@@ -1711,3 +1707,21 @@ def _service_state(self, service_name: str) -> str:
17111707
f'systemctl show --no-pager -p SubState --value {service_name}',
17121708
environment_vars={'SYSTEMD_COLORS': '0'}
17131709
).decode()
1710+
1711+
1712+
def accessibility_tools_in_use() -> bool:
1713+
return os.system('systemctl is-active --quiet espeakup.service') == 0
1714+
1715+
1716+
def run_custom_user_commands(commands: list[str], installation: Installer) -> None:
1717+
for index, command in enumerate(commands):
1718+
script_path = f"/var/tmp/user-command.{index}.sh"
1719+
chroot_path = f"{installation.target}/{script_path}"
1720+
1721+
info(f'Executing custom command "{command}" ...')
1722+
with open(chroot_path, "w") as user_script:
1723+
user_script.write(command)
1724+
1725+
SysCommand(f"arch-chroot {installation.target} bash {script_path}")
1726+
1727+
os.unlink(chroot_path)

archinstall/scripts/guided.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@
55
from archinstall.lib.configuration import ConfigurationOutput
66
from archinstall.lib.disk.filesystem import FilesystemHandler
77
from archinstall.lib.disk.utils import disk_layouts
8-
from archinstall.lib.general import run_custom_user_commands
98
from archinstall.lib.global_menu import GlobalMenu
10-
from archinstall.lib.installer import Installer, accessibility_tools_in_use
9+
from archinstall.lib.installer import Installer, accessibility_tools_in_use, run_custom_user_commands
1110
from archinstall.lib.interactions.general_conf import ask_chroot
1211
from archinstall.lib.models import AudioConfiguration, Bootloader
1312
from archinstall.lib.models.device_model import (

examples/interactive_installation.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@
55
from archinstall.lib.configuration import ConfigurationOutput
66
from archinstall.lib.disk.filesystem import FilesystemHandler
77
from archinstall.lib.disk.utils import disk_layouts
8-
from archinstall.lib.general import run_custom_user_commands
98
from archinstall.lib.global_menu import GlobalMenu
10-
from archinstall.lib.installer import Installer, accessibility_tools_in_use
9+
from archinstall.lib.installer import Installer, accessibility_tools_in_use, run_custom_user_commands
1110
from archinstall.lib.interactions.general_conf import ask_chroot
1211
from archinstall.lib.models import AudioConfiguration, Bootloader
1312
from archinstall.lib.models.device_model import (

0 commit comments

Comments
 (0)