Add constant for path /sys/class/net (#4667)

This commit is contained in:
codefiles 2026-07-25 01:32:22 -04:00 committed by GitHub
parent 615c3341dc
commit c1dcce8c2c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 12 additions and 11 deletions

View File

@ -1,5 +1,4 @@
from dataclasses import dataclass
from pathlib import Path
from typing import assert_never, override
from archinstall.lib.command import SysCommand
@ -7,6 +6,7 @@ from archinstall.lib.exceptions import SysCallError
from archinstall.lib.log import debug
from archinstall.lib.models.network import WifiConfiguredNetwork, WifiNetwork
from archinstall.lib.network.wpa_supplicant import WpaSupplicantConfig
from archinstall.lib.networking import SYS_NET
from archinstall.lib.translationhandler import tr
from archinstall.tui.components import ConfirmationScreen, InputScreen, InstanceRunnable, LoadingScreen, NotifyScreen, TableSelectionScreen, tui
from archinstall.tui.menu_item import MenuItem, MenuItemGroup
@ -86,11 +86,8 @@ class WifiHandler(InstanceRunnable[bool]):
return False
def _find_wifi_interface(self) -> str | None:
net_path = Path('/sys/class/net')
for iface in net_path.iterdir():
maybe_wireless_path = net_path / iface / 'wireless'
if maybe_wireless_path.is_dir():
for iface in SYS_NET.iterdir():
if (iface / 'wireless').is_dir():
return iface.name
return None

View File

@ -6,8 +6,9 @@ import socket
import ssl
import struct
import time
from pathlib import Path
from types import FrameType, TracebackType
from typing import Self
from typing import Final, Self
from urllib.error import URLError
from urllib.parse import urlencode
from urllib.request import urlopen
@ -16,6 +17,8 @@ from archinstall.lib.exceptions import DownloadTimeout, SysCallError
from archinstall.lib.log import debug, error, info
from archinstall.lib.pacman.pacman import Pacman
SYS_NET: Final = Path('/sys/class/net')
class DownloadTimer:
"""
@ -105,13 +108,14 @@ def enrich_iface_types(interfaces: list[str]) -> dict[str, str]:
result = {}
for iface in interfaces:
if os.path.isdir(f'/sys/class/net/{iface}/bridge/'):
path = SYS_NET / iface
if (path / 'bridge').is_dir():
result[iface] = 'BRIDGE'
elif os.path.isfile(f'/sys/class/net/{iface}/tun_flags'):
elif (path / 'tun_flags').is_file():
# ethtool -i {iface}
result[iface] = 'TUN/TAP'
elif os.path.isdir(f'/sys/class/net/{iface}/device'):
if os.path.isdir(f'/sys/class/net/{iface}/wireless/'):
elif (path / 'device').is_dir():
if (path / 'wireless').is_dir():
result[iface] = 'WIRELESS'
else:
result[iface] = 'PHYSICAL'