From 22fc18dc46cd605495175fc141029882b036ab4a Mon Sep 17 00:00:00 2001 From: "Dylan M. Taylor" Date: Sat, 15 May 2021 22:47:14 -0400 Subject: Add mirror reachability check Needed error handling Fix internet connection text not showing up and make it red --- archinstall/lib/networking.py | 8 ++++++++ examples/guided.py | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/archinstall/lib/networking.py b/archinstall/lib/networking.py index b0c4b569..8a2f0edd 100644 --- a/archinstall/lib/networking.py +++ b/archinstall/lib/networking.py @@ -26,6 +26,14 @@ def list_interfaces(skip_loopback=True): return interfaces +def check_mirror_reachable(): + try: + check = SysCommand("pacman -Sy") + return check.exit_code == 0 + except: + return False + + def enrich_iface_types(interfaces: dict): result = {} for iface in interfaces: diff --git a/examples/guided.py b/examples/guided.py index 177f4adb..cce06b29 100644 --- a/examples/guided.py +++ b/examples/guided.py @@ -4,6 +4,7 @@ import time import archinstall from archinstall.lib.hardware import has_uefi +from archinstall.lib.networking import check_mirror_reachable if archinstall.arguments.get('help'): print("See `man archinstall` for help.") @@ -387,5 +388,9 @@ def perform_installation(mountpoint): archinstall.log(f"Disk states after installing: {archinstall.disk_layouts()}", level=logging.DEBUG) +if not check_mirror_reachable(): + archinstall.log("Arch Linux mirrors are not reachable. Please check your internet connection and try again.", level=logging.INFO, fg="red") + exit(1) + ask_user_questions() perform_installation_steps() -- cgit v1.2.3-54-g00ecf