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-20 14:45:54 +0300
committerSecondThundeR <awayfromgalaxy@gmail.com>2021-04-20 14:45:54 +0300
commit1d04c9225873e21e92bc09290653450d161e067d (patch)
tree81fd48c8b3bb49463882270934d00f038e4da56e
parentd2eacffff8e5ad560c55300477cdf28f475eb36c (diff)
Add sort parameter for generic_select
Updated required features to support these change
-rw-r--r--archinstall/lib/user_interaction.py9
-rw-r--r--profiles/desktop.py2
-rw-r--r--profiles/i3.py2
3 files changed, 8 insertions, 5 deletions
diff --git a/archinstall/lib/user_interaction.py b/archinstall/lib/user_interaction.py
index b5c07f6a..f2eae530 100644
--- a/archinstall/lib/user_interaction.py
+++ b/archinstall/lib/user_interaction.py
@@ -231,7 +231,7 @@ def ask_for_disk_layout():
}
value = generic_select(options, "Found partitions on the selected drive, (select by number) what you want to do: ",
- allow_empty_input=False)
+ allow_empty_input=False, sort=True)
return next((key for key, val in options.items() if val == value), None)
def ask_for_main_filesystem_format():
@@ -246,7 +246,7 @@ def ask_for_main_filesystem_format():
allow_empty_input=False)
return next((key for key, val in options.items() if val == value), None)
-def generic_select(options, input_text="Select one of the above by index or absolute value: ", allow_empty_input=True, options_output=True):
+def generic_select(options, input_text="Select one of the above by index or absolute value: ", allow_empty_input=True, options_output=True, sort=False):
"""
A generic select function that does not output anything
other than the options and their indexes. As an example:
@@ -265,7 +265,10 @@ def generic_select(options, input_text="Select one of the above by index or abso
log(" * It looks like there are something wrong with provided options. Maybe it's time to open an issue on GitHub! * ", fg='red')
log(" * Here are the link: https://github.com/archlinux/archinstall/issues * ", fg='yellow')
raise RequirementError("generic_select() requires list or dictionary as options.")
- if type(options) == dict: options = sorted(list(options.values())) # To allow only `list` and `dict`, converting values of options and sorting them here. Therefore, now we can only provide the dictionary itself
+ # 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(" * It looks like there are no options to choose from. Maybe it's time to open an issue on GitHub! * ", fg='red')
log(" * Here are the link: https://github.com/archlinux/archinstall/issues * ", fg='yellow')
diff --git a/profiles/desktop.py b/profiles/desktop.py
index d350cd71..2aea6d30 100644
--- a/profiles/desktop.py
+++ b/profiles/desktop.py
@@ -18,7 +18,7 @@ def _prep_function(*args, **kwargs):
supported_desktops = ['gnome', 'kde', 'awesome', 'sway', 'cinnamon', 'xfce4', 'lxqt', 'i3', 'budgie', 'mate']
desktop = archinstall.generic_select(supported_desktops, 'Select your desired desktop environment: ',
- allow_empty_input=False)
+ allow_empty_input=False, sort=True)
# Temporarily store the selected desktop profile
# in a session-safe location, since this module will get reloaded
diff --git a/profiles/i3.py b/profiles/i3.py
index 923b2f2b..b82c03d6 100644
--- a/profiles/i3.py
+++ b/profiles/i3.py
@@ -18,7 +18,7 @@ def _prep_function(*args, **kwargs):
supported_configurations = ['i3-wm', 'i3-gaps']
desktop = archinstall.generic_select(supported_configurations, 'Select your desired configuration: ',
- allow_empty_input=False)
+ allow_empty_input=False, sort=True)
# Temporarily store the selected desktop profile
# in a session-safe location, since this module will get reloaded