Add filtration on top level profile

This commit is contained in:
Dylan Taylor 2021-04-07 09:12:33 -04:00
parent ac7d980f89
commit f85fb66bc6
2 changed files with 10 additions and 1 deletions

View File

@ -177,6 +177,7 @@ class Profile(Script):
if hasattr(imported, '_prep_function'):
return True
return False
def has_post_install(self):
with open(self.path, 'r') as source:
source_data = source.read()
@ -193,6 +194,13 @@ class Profile(Script):
if hasattr(imported, '_post_install'):
return True
def is_top_level_profile(self):
with open(self.path, 'r') as source:
source_data = source.read()
# TODO: I imagine that there is probably a better way to write this.
return 'top_level_profile = True' in source_data
@property
def packages(self) -> list:
"""

View File

@ -1,6 +1,7 @@
import getpass, time, json, sys, signal, os
import archinstall
from archinstall.lib.hardware import hasUEFI
from archinstall.lib.profiles import Profile
"""
This signal-handler chain (and global variable)
@ -167,7 +168,7 @@ def ask_user_questions():
# Ask for archinstall-specific profiles (such as desktop environments etc)
if not archinstall.arguments.get('profile', None):
archinstall.arguments['profile'] = archinstall.select_profile(archinstall.list_profiles())
archinstall.arguments['profile'] = archinstall.select_profile(filter(lambda profile: (Profile(None, profile).is_top_level_profile()), archinstall.list_profiles()))
else:
archinstall.arguments['profile'] = archinstall.list_profiles()[archinstall.arguments['profile']]