Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSecondThundeR <awayfromgalaxy@gmail.com>2021-04-23 01:55:53 +0300
committerSecondThundeR <awayfromgalaxy@gmail.com>2021-04-23 01:55:53 +0300
commitf5b6e7bafead1f604c27bfb31b84f3f560a682c8 (patch)
treedce070c9133655f81547b98b0d855382d780da1c
parent2d3d3c54ef5ec5f4311afe75d87733a27b1d7509 (diff)
Update logging for some functions
- Unified view of warning (red) and info (yellow) logs - Fixed some PEP8 related issues, like removing redundant f-strings and replacing double quotes to single ones - Removed warning logging level for simple logs - Removed other background color settings for logs to fully close https://github.com/archlinux/archinstall/pull/171
-rw-r--r--archinstall/lib/disk.py4
-rw-r--r--archinstall/lib/installer.py10
-rw-r--r--archinstall/lib/mirrors.py2
-rw-r--r--archinstall/lib/output.py4
-rw-r--r--archinstall/lib/user_interaction.py25
-rw-r--r--examples/guided.py39
6 files changed, 39 insertions, 45 deletions
diff --git a/archinstall/lib/disk.py b/archinstall/lib/disk.py
index bada4076..de93556a 100644
--- a/archinstall/lib/disk.py
+++ b/archinstall/lib/disk.py
@@ -128,7 +128,7 @@ class BlockDevice():
@property
def uuid(self):
- log(f'BlockDevice().uuid is untested!', level=LOG_LEVELS.Warning, fg='yellow')
+ log('BlockDevice().uuid is untested!', level=LOG_LEVELS.Warning, fg='yellow')
"""
Returns the disk UUID as returned by lsblk.
This is more reliable than relying on /dev/disk/by-partuuid as
@@ -292,7 +292,7 @@ class Partition():
raise DiskError(f"Attempting to encrypt a partition that was not marked for encryption: {self}")
if not self.safe_to_format():
- log(f"Partition {self} was marked as protected but encrypt() was called on it!", level=LOG_LEVELS.Error, fg="red")
+ log(f" * Partition {self} was marked as protected but encrypt() was called on it! * ", level=LOG_LEVELS.Error, fg='red')
return False
handle = luks2(self, None, None)
diff --git a/archinstall/lib/installer.py b/archinstall/lib/installer.py
index 758033a7..c64079f6 100644
--- a/archinstall/lib/installer.py
+++ b/archinstall/lib/installer.py
@@ -79,14 +79,14 @@ class Installer():
self.genfstab()
if not (missing_steps := self.post_install_check()):
- self.log('Installation completed without any errors. You may now reboot.', bg='black', fg='green', level=LOG_LEVELS.Info)
+ self.log('Installation completed without any errors. You may now reboot.', fg='green', level=LOG_LEVELS.Info)
self.sync_log_to_install_medium()
return True
else:
- self.log('Some required steps were not successfully installed/configured before leaving the installer:', bg='black', fg='red', level=LOG_LEVELS.Warning)
+ self.log('Some required steps were not successfully installed/configured before leaving the installer:', fg='red', level=LOG_LEVELS.Warning)
for step in missing_steps:
- self.log(f' - {step}', bg='black', fg='red', level=LOG_LEVELS.Warning)
+ self.log(f' - {step}', fg='red', level=LOG_LEVELS.Warning)
self.log(f"Detailed error logs can be found at: {storage['LOG_PATH']}", level=LOG_LEVELS.Warning)
self.log(f"Submit this zip file as an issue to https://github.com/archlinux/archinstall/issues", level=LOG_LEVELS.Warning)
@@ -168,7 +168,7 @@ class Installer():
return True
else:
self.log(
- f"Time zone {zone} does not exist, continuing with system default.",
+ f" * Timezone \"{zone}\" does not exist, continuing with system default * ",
level=LOG_LEVELS.Warning,
fg='red'
)
@@ -460,5 +460,5 @@ class Installer():
vconsole.write(f'KEYMAP={language}\n')
vconsole.write(f'FONT=lat9w-16\n')
else:
- self.log(f'Keyboard language was not changed from default (no language specified).', fg="yellow", level=LOG_LEVELS.Info)
+ self.log('Keyboard language was not changed from default (no language specified).', fg='yellow', level=LOG_LEVELS.Info)
return True
diff --git a/archinstall/lib/mirrors.py b/archinstall/lib/mirrors.py
index 04f47c0d..57271bf8 100644
--- a/archinstall/lib/mirrors.py
+++ b/archinstall/lib/mirrors.py
@@ -79,7 +79,7 @@ def list_mirrors():
try:
response = urllib.request.urlopen(url)
except urllib.error.URLError as err:
- log(f'Could not fetch an active mirror-list: {err}', level=LOG_LEVELS.Warning, fg="yellow")
+ log(f"Could not fetch an active mirror-list: {err}", level=LOG_LEVELS.Warning, fg='yellow')
return regions
diff --git a/archinstall/lib/output.py b/archinstall/lib/output.py
index 6b184b4b..eb23faf4 100644
--- a/archinstall/lib/output.py
+++ b/archinstall/lib/output.py
@@ -100,12 +100,12 @@ def log(*args, **kwargs):
Path(absolute_logfile).parents[0].mkdir(exist_ok=True, parents=True)
except PermissionError:
# Fallback to creating the log file in the current folder
- err_string = f"Not enough permission to place log file at {absolute_logfile}, creating it in {Path('./').absolute()/filename} instead."
+ err_string = f" * Not enough permission to place log file at {absolute_logfile}, creating it in {Path('./').absolute()/filename} instead * "
absolute_logfile = Path('./').absolute()/filename
absolute_logfile.parents[0].mkdir(exist_ok=True)
absolute_logfile = str(absolute_logfile)
storage['LOG_PATH'] = './'
- log(err_string, fg="red")
+ log(err_string, fg='red')
Path(absolute_logfile).touch() # Overkill?
diff --git a/archinstall/lib/user_interaction.py b/archinstall/lib/user_interaction.py
index 572acf4f..ec6b6d34 100644
--- a/archinstall/lib/user_interaction.py
+++ b/archinstall/lib/user_interaction.py
@@ -22,11 +22,7 @@ def get_longest_option(options):
def check_for_correct_username(username):
if re.match(r'^[a-z_][a-z0-9_-]*\$?$', username) and len(username) <= 32:
return True
- log(
- "The username you entered is invalid. Try again",
- level=LOG_LEVELS.Warning,
- fg='red'
- )
+ log(' * The username you entered is invalid. Try again * ', fg='red')
return False
def do_countdown():
@@ -138,8 +134,7 @@ def ask_for_a_timezone():
return timezone
else:
log(
- f"Specified timezone {timezone} does not exist.",
- level=LOG_LEVELS.Warning,
+ f"* Specified timezone {timezone} does not exist * ",
fg='red'
)
@@ -185,8 +180,7 @@ def ask_to_configure_network():
break
except ValueError:
log(
- "You need to enter a valid IP in IP-config mode.",
- level=LOG_LEVELS.Warning,
+ 'You need to enter a valid IP in IP-config mode',
fg='red'
)
@@ -201,8 +195,7 @@ def ask_to_configure_network():
break
except ValueError:
log(
- "You need to enter a valid gateway (router) IP address.",
- level=LOG_LEVELS.Warning,
+ 'You need to enter a valid gateway (router) IP address',
fg='red'
)
@@ -258,15 +251,15 @@ def generic_select(options, input_text="Select one of the above by index or abso
# Checking if options are different from `list` or `dict`
if type(options) not in [list, dict]:
log(f" * Generic select doesn't support ({type(options)}) as type of options * ", fg='red')
- log(" * If problem persists, please create an issue on https://github.com/archlinux/archinstall/issues * ", fg='yellow')
+ log('If problem persists, please create an issue on https://github.com/archlinux/archinstall/issues', fg='yellow')
raise RequirementError("generic_select() requires list or dictionary as options.")
# To allow only `list` and `dict`, converting values of options here.
# Therefore, now we can only provide the dictionary itself
if type(options) == dict: options = list(options.values())
if sort: options = sorted(options) # As we pass only list and dict (converted to list), we can skip converting to list
if len(options) == 0:
- log(f" * Generic select didn't find any options to choose from * ", fg='red')
- log(" * If problem persists, please create an issue on https://github.com/archlinux/archinstall/issues * ", fg='yellow')
+ log(' * Generic select didn\'t find any options to choose from * ', fg='red')
+ log('If problem persists, please create an issue on https://github.com/archlinux/archinstall/issues', fg='yellow')
raise RequirementError('generic_select() requires at least one option to proceed.')
@@ -398,7 +391,7 @@ def select_language(options, show_only_country_codes=True):
new_options = list(search_keyboard_layout(filter_string))
if len(new_options) <= 0:
- log(f"Search string '{filter_string}' yielded no results, please try another search.", fg='yellow')
+ log(f"Search string '{filter_string}' yielded no results, please try another search", fg='yellow')
continue
return select_language(new_options, show_only_country_codes=False)
@@ -411,7 +404,7 @@ def select_language(options, show_only_country_codes=True):
elif verify_keyboard_layout(selected_language):
return selected_language
else:
- log(" * Given language wasn't found * ", fg='red')
+ log(' * Given language was not found * ', fg='red')
raise RequirementError("Selecting languages require a least one language to be given as an option.")
diff --git a/examples/guided.py b/examples/guided.py
index cc9cf5fc..f89efa45 100644
--- a/examples/guided.py
+++ b/examples/guided.py
@@ -4,7 +4,7 @@ from archinstall.lib.hardware import hasUEFI
from archinstall.lib.profiles import Profile
if hasUEFI() is False:
- archinstall.log("ArchInstall currently only supports machines booted with UEFI.\nMBR & GRUB support is coming in version 2.2.0!", fg="red", level=archinstall.LOG_LEVELS.Error)
+ archinstall.log(" * ArchInstall currently only supports machines booted with UEFI.\nMBR & GRUB support is coming in version 2.2.0! * ", fg='red', level=archinstall.LOG_LEVELS.Error)
exit(1)
def ask_user_questions():
@@ -18,8 +18,8 @@ def ask_user_questions():
try:
archinstall.arguments['keyboard-language'] = archinstall.select_language(archinstall.list_keyboard_languages()).strip()
break
- except archinstall.RequirementError as err:
- archinstall.log(err, fg="red")
+ except archinstall.RequirementError as e:
+ archinstall.log(f" * {e} * ", fg='red')
# Before continuing, set the preferred keyboard layout/language in the current terminal.
# This will just help the user with the next following questions.
@@ -33,7 +33,7 @@ def ask_user_questions():
archinstall.arguments['mirror-region'] = archinstall.select_mirror_regions(archinstall.list_mirrors())
break
except archinstall.RequirementError as e:
- archinstall.log(e, fg="red")
+ archinstall.log(f" * {e} * ", fg='red')
else:
selected_region = archinstall.arguments['mirror-region']
archinstall.arguments['mirror-region'] = {selected_region : archinstall.list_mirrors()[selected_region]}
@@ -67,13 +67,13 @@ def ask_user_questions():
# We then ask what to do with the partitions.
if (option := archinstall.ask_for_disk_layout()) == 'abort':
- archinstall.log(f"Safely aborting the installation. No changes to the disk or system has been made.")
+ archinstall.log('Safely aborting the installation. No changes to the disk or system has been made', fg='yellow')
exit(1)
elif option == 'keep-existing':
archinstall.arguments['harddrive'].keep_partitions = True
- archinstall.log(f" ** You will now select which partitions to use by selecting mount points (inside the installation). **")
- archinstall.log(f" ** The root would be a simple / and the boot partition /boot (as all paths are relative inside the installation). **")
+ archinstall.log(' -- You will now select which partitions to use by selecting mount points (inside the installation) -- ')
+ archinstall.log(' -- The root would be a simple / and the boot partition /boot (as all paths are relative inside the installation) -- ')
mountpoints_set = []
while True:
# Select a partition
@@ -103,8 +103,8 @@ def ask_user_questions():
if (autodetected_filesystem := partition.detect_inner_filesystem(old_password)):
new_filesystem = autodetected_filesystem
else:
- archinstall.log(f"Could not auto-detect the filesystem inside the encrypted volume.", fg='red')
- archinstall.log(f"A filesystem must be defined for the unlocked encrypted partition.")
+ archinstall.log(' * Could not auto-detect the filesystem inside the encrypted volume * ', fg='red')
+ archinstall.log('A filesystem must be defined for the unlocked encrypted partition')
continue
break
@@ -114,8 +114,9 @@ def ask_user_questions():
try:
partition.format(new_filesystem, path='/dev/null', log_formatting=False, allow_formatting=True)
except archinstall.UnknownFilesystemFormat:
- archinstall.log(f"Selected filesystem is not supported yet. If you want archinstall to support '{new_filesystem}', please create a issue-ticket suggesting it on github at https://github.com/archlinux/archinstall/issues.")
- archinstall.log(f"Until then, please enter another supported filesystem.")
+ archinstall.log(' * Selected filesystem is not supported yet * ', fg='red')
+ archinstall.log(f"If you want archinstall to support '{new_filesystem}', please create a issue-ticket suggesting it on github at https://github.com/archlinux/archinstall/issues.")
+ archinstall.log('Until then, please enter another supported filesystem')
continue
except archinstall.SysCallError:
pass # Expected exception since mkfs.<format> can not format /dev/null.
@@ -178,7 +179,7 @@ def ask_user_questions():
with archinstall.arguments['profile'].load_instructions(namespace=f"{archinstall.arguments['profile'].namespace}.py") as imported:
if not imported._prep_function():
archinstall.log(
- ' * Profile\'s preparation requirements was not fulfilled.',
+ ' * Profile\'s preparation requirements was not fulfilled * ',
fg='red'
)
exit(1)
@@ -204,11 +205,11 @@ def ask_user_questions():
if len(archinstall.arguments['packages']):
# Verify packages that were given
try:
- archinstall.log(f"Verifying that additional packages exist (this might take a few seconds)")
+ archinstall.log('Verifying that additional packages exist (this might take a few seconds)', fg='yellow')
archinstall.validate_package_list(archinstall.arguments['packages'])
break
except archinstall.RequirementError as e:
- archinstall.log(e, fg='red')
+ archinstall.log(f" * {e} * ", fg='red')
archinstall.arguments['packages'] = None # Clear the packages to trigger a new input question
else:
# no additional packages were selected, which we'll allow
@@ -218,7 +219,7 @@ def ask_user_questions():
if not archinstall.arguments.get('nic', None):
archinstall.arguments['nic'] = archinstall.ask_to_configure_network()
if not archinstall.arguments['nic']:
- archinstall.log(f"No network configuration was selected. Network is going to be unavailable until configured manually!", fg="yellow")
+ archinstall.log('No network configuration was selected. Network is going to be unavailable until configured manually!', fg='yellow')
if not archinstall.arguments.get('timezone', None):
archinstall.arguments['timezone'] = archinstall.ask_for_a_timezone()
@@ -299,7 +300,7 @@ def perform_installation(mountpoint):
# Certain services might be running that affects the system during installation.
# Currently, only one such service is "reflector.service" which updates /etc/pacman.d/mirrorlist
# We need to wait for it before we continue since we opted in to use a custom mirror/region.
- installation.log(f'Waiting for automatic mirror selection (reflector) to complete.', level=archinstall.LOG_LEVELS.Info)
+ installation.log('Waiting for automatic mirror selection (reflector) to complete...', level=archinstall.LOG_LEVELS.Info)
while archinstall.service_state('reflector') not in ('dead', 'failed'):
time.sleep(1)
@@ -356,9 +357,9 @@ def perform_installation(mountpoint):
if (root_pw := archinstall.arguments.get('!root-password', None)) and len(root_pw):
installation.user_set_pw('root', root_pw)
- installation.log("For post-installation tips, see https://wiki.archlinux.org/index.php/Installation_guide#Post-installation", fg="yellow")
- choice = input("Would you like to chroot into the newly created installation and perform post-installation configuration? [Y/n] ")
- if choice.lower() in ("y", ""):
+ installation.log('For post-installation tips, see https://wiki.archlinux.org/index.php/Installation_guide#Post-installation', fg='yellow')
+ choice = input('Would you like to chroot into the newly created installation and perform post-installation configuration? [Y/n] ')
+ if choice.lower() in ('y', ''):
try:
installation.drop_to_shell()
except: