Handle no internet connection gracefully (#1361)

* Handle no internet connection gracefully

* Update

* flake8

* Update

* Update

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
This commit is contained in:
Daniel Girtler 2022-08-01 18:29:58 +10:00 committed by GitHub
parent 1bd2210e5f
commit 31e6eca3af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 6 deletions

View File

@ -4,7 +4,7 @@ import socket
import struct import struct
from typing import Union, Dict, Any, List from typing import Union, Dict, Any, List
from .exceptions import HardwareIncompatibilityError from .exceptions import HardwareIncompatibilityError, SysCallError
from .general import SysCommand from .general import SysCommand
from .output import log from .output import log
from .pacman import run_pacman from .pacman import run_pacman
@ -33,14 +33,17 @@ def list_interfaces(skip_loopback :bool = True) -> Dict[str, str]:
def check_mirror_reachable() -> bool: def check_mirror_reachable() -> bool:
log("Testing connectivity to the Arch Linux mirrors ...", level=logging.INFO) log("Testing connectivity to the Arch Linux mirrors ...", level=logging.INFO)
try:
if run_pacman("-Sy").exit_code == 0: if run_pacman("-Sy").exit_code == 0:
return True return True
elif os.geteuid() != 0: elif os.geteuid() != 0:
log("check_mirror_reachable() uses 'pacman -Sy' which requires root.", level=logging.ERROR, fg="red") log("check_mirror_reachable() uses 'pacman -Sy' which requires root.", level=logging.ERROR, fg="red")
except SysCallError as err:
log(err, level=logging.DEBUG)
return False return False
def update_keyring() -> bool: def update_keyring() -> bool:
log("Updating archlinux-keyring ...", level=logging.INFO) log("Updating archlinux-keyring ...", level=logging.INFO)
if run_pacman("-Sy --noconfirm archlinux-keyring").exit_code == 0: if run_pacman("-Sy --noconfirm archlinux-keyring").exit_code == 0: