Merge pull request #449 from dylanmtaylor/f-string-fixes
Make some f-string fixes
This commit is contained in:
commit
9daf7ce997
|
|
@ -105,7 +105,7 @@ class BlockDevice():
|
||||||
raise DiskError(f'Can not read partitions off something that isn\'t a block device: {self.path}')
|
raise DiskError(f'Can not read partitions off something that isn\'t a block device: {self.path}')
|
||||||
|
|
||||||
if not o[:1] == b'{':
|
if not o[:1] == b'{':
|
||||||
raise DiskError(f'Error getting JSON output from:', f'/usr/bin/lsblk -J {self.path}')
|
raise DiskError('Error getting JSON output from:', f'/usr/bin/lsblk -J {self.path}')
|
||||||
|
|
||||||
r = json.loads(o.decode('UTF-8'))
|
r = json.loads(o.decode('UTF-8'))
|
||||||
if len(r['blockdevices']) and 'children' in r['blockdevices'][0]:
|
if len(r['blockdevices']) and 'children' in r['blockdevices'][0]:
|
||||||
|
|
@ -130,7 +130,7 @@ class BlockDevice():
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def uuid(self):
|
def uuid(self):
|
||||||
log(f'BlockDevice().uuid is untested!', level=logging.WARNING, fg='yellow')
|
log('BlockDevice().uuid is untested!', level=logging.WARNING, fg='yellow')
|
||||||
"""
|
"""
|
||||||
Returns the disk UUID as returned by lsblk.
|
Returns the disk UUID as returned by lsblk.
|
||||||
This is more reliable than relying on /dev/disk/by-partuuid as
|
This is more reliable than relying on /dev/disk/by-partuuid as
|
||||||
|
|
@ -441,12 +441,12 @@ class Filesystem():
|
||||||
self.blockdevice.flush_cache()
|
self.blockdevice.flush_cache()
|
||||||
return self
|
return self
|
||||||
else:
|
else:
|
||||||
raise DiskError(f'Problem setting the partition format to GPT:', f'/usr/bin/parted -s {self.blockdevice.device} mklabel gpt')
|
raise DiskError('Problem setting the partition format to GPT:', f'/usr/bin/parted -s {self.blockdevice.device} mklabel gpt')
|
||||||
elif self.mode == MBR:
|
elif self.mode == MBR:
|
||||||
if sys_command(f'/usr/bin/parted -s {self.blockdevice.device} mklabel msdos').exit_code == 0:
|
if sys_command(f'/usr/bin/parted -s {self.blockdevice.device} mklabel msdos').exit_code == 0:
|
||||||
return self
|
return self
|
||||||
else:
|
else:
|
||||||
raise DiskError(f'Problem setting the partition format to GPT:', f'/usr/bin/parted -s {self.blockdevice.device} mklabel msdos')
|
raise DiskError('Problem setting the partition format to GPT:', f'/usr/bin/parted -s {self.blockdevice.device} mklabel msdos')
|
||||||
else:
|
else:
|
||||||
raise DiskError(f'Unknown mode selected to format in: {self.mode}')
|
raise DiskError(f'Unknown mode selected to format in: {self.mode}')
|
||||||
|
|
||||||
|
|
@ -465,7 +465,7 @@ class Filesystem():
|
||||||
# TODO: https://stackoverflow.com/questions/28157929/how-to-safely-handle-an-exception-inside-a-context-manager
|
# TODO: https://stackoverflow.com/questions/28157929/how-to-safely-handle-an-exception-inside-a-context-manager
|
||||||
if len(args) >= 2 and args[1]:
|
if len(args) >= 2 and args[1]:
|
||||||
raise args[1]
|
raise args[1]
|
||||||
b''.join(sys_command(f'sync'))
|
b''.join(sys_command('sync'))
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def find_partition(self, mountpoint):
|
def find_partition(self, mountpoint):
|
||||||
|
|
@ -565,7 +565,7 @@ def all_disks(*args, **kwargs):
|
||||||
kwargs.setdefault("partitions", False)
|
kwargs.setdefault("partitions", False)
|
||||||
drives = OrderedDict()
|
drives = OrderedDict()
|
||||||
# for drive in json.loads(sys_command(f'losetup --json', *args, **lkwargs, hide_from_log=True)).decode('UTF_8')['loopdevices']:
|
# for drive in json.loads(sys_command(f'losetup --json', *args, **lkwargs, hide_from_log=True)).decode('UTF_8')['loopdevices']:
|
||||||
for drive in json.loads(b''.join(sys_command(f'lsblk --json -l -n -o path,size,type,mountpoint,label,pkname,model', *args, **kwargs, hide_from_log=True)).decode('UTF_8'))['blockdevices']:
|
for drive in json.loads(b''.join(sys_command('lsblk --json -l -n -o path,size,type,mountpoint,label,pkname,model', *args, **kwargs, hide_from_log=True)).decode('UTF_8'))['blockdevices']:
|
||||||
if not kwargs['partitions'] and drive['type'] == 'part': continue
|
if not kwargs['partitions'] and drive['type'] == 'part': continue
|
||||||
|
|
||||||
drives[drive['path']] = BlockDevice(drive['path'], drive)
|
drives[drive['path']] = BlockDevice(drive['path'], drive)
|
||||||
|
|
@ -639,7 +639,7 @@ def get_filesystem_type(path):
|
||||||
|
|
||||||
def disk_layouts():
|
def disk_layouts():
|
||||||
try:
|
try:
|
||||||
handle = sys_command(f"lsblk -f -o+TYPE,SIZE -J")
|
handle = sys_command("lsblk -f -o+TYPE,SIZE -J")
|
||||||
return json.loads(b''.join(handle).decode('UTF-8'))
|
return json.loads(b''.join(handle).decode('UTF-8'))
|
||||||
except SysCallError as err:
|
except SysCallError as err:
|
||||||
log(f"Could not return disk layouts: {err}")
|
log(f"Could not return disk layouts: {err}")
|
||||||
|
|
|
||||||
|
|
@ -281,7 +281,7 @@ class sys_command:
|
||||||
if 'debug' in self.kwargs and self.kwargs['debug']:
|
if 'debug' in self.kwargs and self.kwargs['debug']:
|
||||||
self.log(f"Waiting for last command {self.cmd[0]} to finish.", level=logging.DEBUG)
|
self.log(f"Waiting for last command {self.cmd[0]} to finish.", level=logging.DEBUG)
|
||||||
|
|
||||||
if bytes(f']$'.lower(), 'UTF-8') in self.trace_log[0 - len(f']$') - 5:].lower():
|
if bytes(']$'.lower(), 'UTF-8') in self.trace_log[0 - len(']$') - 5:].lower():
|
||||||
if 'debug' in self.kwargs and self.kwargs['debug']:
|
if 'debug' in self.kwargs and self.kwargs['debug']:
|
||||||
self.log(f"{self.cmd[0]} has finished.", level=logging.DEBUG)
|
self.log(f"{self.cmd[0]} has finished.", level=logging.DEBUG)
|
||||||
alive = False
|
alive = False
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ def hasUEFI() -> bool:
|
||||||
|
|
||||||
def graphicsDevices() -> dict:
|
def graphicsDevices() -> dict:
|
||||||
cards = {}
|
cards = {}
|
||||||
for line in sys_command(f"lspci"):
|
for line in sys_command("lspci"):
|
||||||
if b' VGA ' in line:
|
if b' VGA ' in line:
|
||||||
_, identifier = line.split(b': ', 1)
|
_, identifier = line.split(b': ', 1)
|
||||||
cards[identifier.strip().lower().decode('UTF-8')] = line
|
cards[identifier.strip().lower().decode('UTF-8')] = line
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ class Installer():
|
||||||
return self
|
return self
|
||||||
|
|
||||||
def __exit__(self, *args, **kwargs):
|
def __exit__(self, *args, **kwargs):
|
||||||
# b''.join(sys_command(f'sync')) # No need to, since the underlying fs() object will call sync.
|
# b''.join(sys_command('sync')) # No need to, since the underlying fs() object will call sync.
|
||||||
# TODO: https://stackoverflow.com/questions/28157929/how-to-safely-handle-an-exception-inside-a-context-manager
|
# TODO: https://stackoverflow.com/questions/28157929/how-to-safely-handle-an-exception-inside-a-context-manager
|
||||||
|
|
||||||
if len(args) >= 2 and args[1]:
|
if len(args) >= 2 and args[1]:
|
||||||
|
|
@ -82,7 +82,7 @@ class Installer():
|
||||||
# We avoid printing /mnt/<log path> because that might confuse people if they note it down
|
# We avoid printing /mnt/<log path> because that might confuse people if they note it down
|
||||||
# and then reboot, and a identical log file will be found in the ISO medium anyway.
|
# and then reboot, and a identical log file will be found in the ISO medium anyway.
|
||||||
print(f"[!] A log file has been created here: {os.path.join(storage['LOG_PATH'], storage['LOG_FILE'])}")
|
print(f"[!] A log file has been created here: {os.path.join(storage['LOG_PATH'], storage['LOG_FILE'])}")
|
||||||
print(f" Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues")
|
print(" Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues")
|
||||||
raise args[1]
|
raise args[1]
|
||||||
|
|
||||||
self.genfstab()
|
self.genfstab()
|
||||||
|
|
@ -98,7 +98,7 @@ class Installer():
|
||||||
self.log(f' - {step}', fg='red', level=logging.WARNING)
|
self.log(f' - {step}', fg='red', level=logging.WARNING)
|
||||||
|
|
||||||
self.log(f"Detailed error logs can be found at: {storage['LOG_PATH']}", level=logging.WARNING)
|
self.log(f"Detailed error logs can be found at: {storage['LOG_PATH']}", level=logging.WARNING)
|
||||||
self.log(f"Submit this zip file as an issue to https://github.com/archlinux/archinstall/issues", level=logging.WARNING)
|
self.log("Submit this zip file as an issue to https://github.com/archlinux/archinstall/issues", level=logging.WARNING)
|
||||||
|
|
||||||
self.sync_log_to_install_medium()
|
self.sync_log_to_install_medium()
|
||||||
return False
|
return False
|
||||||
|
|
@ -183,7 +183,7 @@ class Installer():
|
||||||
)
|
)
|
||||||
|
|
||||||
def activate_ntp(self):
|
def activate_ntp(self):
|
||||||
self.log(f'Installing and activating NTP.', level=logging.INFO)
|
self.log('Installing and activating NTP.', level=logging.INFO)
|
||||||
if self.pacstrap('ntp'):
|
if self.pacstrap('ntp'):
|
||||||
if self.enable_service('ntpd'):
|
if self.enable_service('ntpd'):
|
||||||
return True
|
return True
|
||||||
|
|
@ -389,7 +389,7 @@ class Installer():
|
||||||
else:
|
else:
|
||||||
loader_data = [
|
loader_data = [
|
||||||
f"default {self.init_time}",
|
f"default {self.init_time}",
|
||||||
f"timeout 5"
|
"timeout 5"
|
||||||
]
|
]
|
||||||
|
|
||||||
with open(f'{self.target}/boot/loader/loader.conf', 'w') as loader:
|
with open(f'{self.target}/boot/loader/loader.conf', 'w') as loader:
|
||||||
|
|
@ -407,10 +407,10 @@ class Installer():
|
||||||
# UUID = sys_command('blkid -s PARTUUID -o value {drive}{partition_2}'.format(**args)).decode('UTF-8').strip()
|
# UUID = sys_command('blkid -s PARTUUID -o value {drive}{partition_2}'.format(**args)).decode('UTF-8').strip()
|
||||||
# Setup the loader entry
|
# Setup the loader entry
|
||||||
with open(f'{self.target}/boot/loader/entries/{self.init_time}.conf', 'w') as entry:
|
with open(f'{self.target}/boot/loader/entries/{self.init_time}.conf', 'w') as entry:
|
||||||
entry.write(f'# Created by: archinstall\n')
|
entry.write('# Created by: archinstall\n')
|
||||||
entry.write(f'# Created on: {self.init_time}\n')
|
entry.write(f'# Created on: {self.init_time}\n')
|
||||||
entry.write(f'title Arch Linux\n')
|
entry.write('title Arch Linux\n')
|
||||||
entry.write(f'linux /vmlinuz-linux\n')
|
entry.write('linux /vmlinuz-linux\n')
|
||||||
if not isVM():
|
if not isVM():
|
||||||
vendor = cpuVendor()
|
vendor = cpuVendor()
|
||||||
if vendor == "AuthenticAMD":
|
if vendor == "AuthenticAMD":
|
||||||
|
|
@ -419,7 +419,7 @@ class Installer():
|
||||||
entry.write("initrd /intel-ucode.img\n")
|
entry.write("initrd /intel-ucode.img\n")
|
||||||
else:
|
else:
|
||||||
self.log("unknow cpu vendor, not adding ucode to systemd-boot config")
|
self.log("unknow cpu vendor, not adding ucode to systemd-boot config")
|
||||||
entry.write(f'initrd /initramfs-linux.img\n')
|
entry.write('initrd /initramfs-linux.img\n')
|
||||||
## blkid doesn't trigger on loopback devices really well,
|
## blkid doesn't trigger on loopback devices really well,
|
||||||
## so we'll use the old manual method until we get that sorted out.
|
## so we'll use the old manual method until we get that sorted out.
|
||||||
|
|
||||||
|
|
@ -506,7 +506,7 @@ class Installer():
|
||||||
if len(language.strip()):
|
if len(language.strip()):
|
||||||
with open(f'{self.target}/etc/vconsole.conf', 'w') as vconsole:
|
with open(f'{self.target}/etc/vconsole.conf', 'w') as vconsole:
|
||||||
vconsole.write(f'KEYMAP={language}\n')
|
vconsole.write(f'KEYMAP={language}\n')
|
||||||
vconsole.write(f'FONT=lat9w-16\n')
|
vconsole.write('FONT=lat9w-16\n')
|
||||||
else:
|
else:
|
||||||
self.log(f'Keyboard language was not changed from default (no language specified).', fg="yellow", level=logging.INFO)
|
self.log('Keyboard language was not changed from default (no language specified).', fg="yellow", level=logging.INFO)
|
||||||
return True
|
return True
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,7 @@ def re_rank_mirrors(top=10, *positionals, **kwargs):
|
||||||
|
|
||||||
|
|
||||||
def list_mirrors():
|
def list_mirrors():
|
||||||
url = f"https://archlinux.org/mirrorlist/?protocol=https&ip_version=4&ip_version=6&use_mirror_status=on"
|
url = "https://archlinux.org/mirrorlist/?protocol=https&ip_version=4&ip_version=6&use_mirror_status=on"
|
||||||
regions = {}
|
regions = {}
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
|
||||||
|
|
@ -125,7 +125,7 @@ def generic_multi_select(options, text="Select one or more of the options above
|
||||||
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_multi_select() requires list or dictionary as options.")
|
raise RequirementError("generic_multi_select() requires list or dictionary as options.")
|
||||||
if not options:
|
if not options:
|
||||||
log(f" * Generic multi-select didn't find any options to choose from * ", fg='red')
|
log(" * Generic multi-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(" * If problem persists, please create an issue on https://github.com/archlinux/archinstall/issues * ", fg='yellow')
|
||||||
raise RequirementError('generic_multi_select() requires at least one option to proceed.')
|
raise RequirementError('generic_multi_select() requires at least one option to proceed.')
|
||||||
# After passing the checks, function continues to work
|
# After passing the checks, function continues to work
|
||||||
|
|
@ -491,7 +491,7 @@ def generic_select(options, input_text="Select one of the above by index or abso
|
||||||
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.")
|
raise RequirementError("generic_select() requires list or dictionary as options.")
|
||||||
if not options:
|
if not options:
|
||||||
log(f" * Generic select didn't find any options to choose from * ", fg='red')
|
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')
|
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.')
|
raise RequirementError('generic_select() requires at least one option to proceed.')
|
||||||
# After passing the checks, function continues to work
|
# After passing the checks, function continues to work
|
||||||
|
|
@ -552,7 +552,7 @@ def select_disk(dict_o_disks):
|
||||||
for index, drive in enumerate(drives):
|
for index, drive in enumerate(drives):
|
||||||
print(f"{index}: {drive} ({dict_o_disks[drive]['size'], dict_o_disks[drive].device, dict_o_disks[drive]['label']})")
|
print(f"{index}: {drive} ({dict_o_disks[drive]['size'], dict_o_disks[drive].device, dict_o_disks[drive]['label']})")
|
||||||
|
|
||||||
log(f"You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)", fg="yellow")
|
log("You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)", fg="yellow")
|
||||||
drive = generic_select(drives, 'Select one of the above disks (by name or number) or leave blank to use /mnt: ', options_output=False)
|
drive = generic_select(drives, 'Select one of the above disks (by name or number) or leave blank to use /mnt: ', options_output=False)
|
||||||
if not drive:
|
if not drive:
|
||||||
return drive
|
return drive
|
||||||
|
|
@ -708,7 +708,7 @@ def select_driver(options=AVAILABLE_GFX_DRIVERS):
|
||||||
default_option = options["All open-source (default)"]
|
default_option = options["All open-source (default)"]
|
||||||
|
|
||||||
if drivers:
|
if drivers:
|
||||||
lspci = sys_command(f'/usr/bin/lspci')
|
lspci = sys_command('/usr/bin/lspci')
|
||||||
for line in lspci.trace_log.split(b'\r\n'):
|
for line in lspci.trace_log.split(b'\r\n'):
|
||||||
if b' vga ' in line.lower():
|
if b' vga ' in line.lower():
|
||||||
if b'nvidia' in line.lower():
|
if b'nvidia' in line.lower():
|
||||||
|
|
|
||||||
|
|
@ -72,13 +72,13 @@ def ask_user_questions():
|
||||||
|
|
||||||
# We then ask what to do with the partitions.
|
# We then ask what to do with the partitions.
|
||||||
if (option := archinstall.ask_for_disk_layout()) == 'abort':
|
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.")
|
||||||
exit(1)
|
exit(1)
|
||||||
elif option == 'keep-existing':
|
elif option == 'keep-existing':
|
||||||
archinstall.arguments['harddrive'].keep_partitions = True
|
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(" ** 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(" ** The root would be a simple / and the boot partition /boot (as all paths are relative inside the installation). **")
|
||||||
mountpoints_set = []
|
mountpoints_set = []
|
||||||
while True:
|
while True:
|
||||||
# Select a partition
|
# Select a partition
|
||||||
|
|
@ -108,8 +108,8 @@ def ask_user_questions():
|
||||||
if (autodetected_filesystem := partition.detect_inner_filesystem(old_password)):
|
if (autodetected_filesystem := partition.detect_inner_filesystem(old_password)):
|
||||||
new_filesystem = autodetected_filesystem
|
new_filesystem = autodetected_filesystem
|
||||||
else:
|
else:
|
||||||
archinstall.log(f"Could not auto-detect the filesystem inside the encrypted volume.", fg='red')
|
archinstall.log("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("A filesystem must be defined for the unlocked encrypted partition.")
|
||||||
continue
|
continue
|
||||||
break
|
break
|
||||||
|
|
||||||
|
|
@ -215,7 +215,7 @@ def ask_user_questions():
|
||||||
if len(archinstall.arguments['packages']):
|
if len(archinstall.arguments['packages']):
|
||||||
# Verify packages that were given
|
# Verify packages that were given
|
||||||
try:
|
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)")
|
||||||
archinstall.validate_package_list(archinstall.arguments['packages'])
|
archinstall.validate_package_list(archinstall.arguments['packages'])
|
||||||
break
|
break
|
||||||
except archinstall.RequirementError as e:
|
except archinstall.RequirementError as e:
|
||||||
|
|
@ -229,7 +229,7 @@ def ask_user_questions():
|
||||||
if not archinstall.arguments.get('nic', None):
|
if not archinstall.arguments.get('nic', None):
|
||||||
archinstall.arguments['nic'] = archinstall.ask_to_configure_network()
|
archinstall.arguments['nic'] = archinstall.ask_to_configure_network()
|
||||||
if not archinstall.arguments['nic']:
|
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):
|
if not archinstall.arguments.get('timezone', None):
|
||||||
archinstall.arguments['timezone'] = archinstall.ask_for_a_timezone()
|
archinstall.arguments['timezone'] = archinstall.ask_for_a_timezone()
|
||||||
|
|
@ -312,7 +312,7 @@ def perform_installation(mountpoint):
|
||||||
# Certain services might be running that affects the system during installation.
|
# 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
|
# 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.
|
# 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=logging.INFO)
|
installation.log('Waiting for automatic mirror selection (reflector) to complete.', level=logging.INFO)
|
||||||
while archinstall.service_state('reflector') not in ('dead', 'failed'):
|
while archinstall.service_state('reflector') not in ('dead', 'failed'):
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
# Set mirrors used by pacstrap (outside of installation)
|
# Set mirrors used by pacstrap (outside of installation)
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ def _prep_function(*args, **kwargs):
|
||||||
Magic function called by the importing installer
|
Magic function called by the importing installer
|
||||||
before continuing any further.
|
before continuing any further.
|
||||||
"""
|
"""
|
||||||
selected_servers = archinstall.generic_multi_select(available_servers, f"Choose which servers to install and enable (leave blank for a minimal installation): ")
|
selected_servers = archinstall.generic_multi_select(available_servers, "Choose which servers to install and enable (leave blank for a minimal installation): ")
|
||||||
archinstall.storage['_selected_servers'] = selected_servers
|
archinstall.storage['_selected_servers'] = selected_servers
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
@ -24,7 +24,7 @@ if __name__ == 'server':
|
||||||
"""
|
"""
|
||||||
This "profile" is a meta-profile.
|
This "profile" is a meta-profile.
|
||||||
"""
|
"""
|
||||||
archinstall.log(f'Now installing the selected servers.', level=logging.INFO)
|
archinstall.log('Now installing the selected servers.', level=logging.INFO)
|
||||||
archinstall.log(archinstall.storage['_selected_servers'], level=logging.DEBUG)
|
archinstall.log(archinstall.storage['_selected_servers'], level=logging.DEBUG)
|
||||||
for server in archinstall.storage['_selected_servers']:
|
for server in archinstall.storage['_selected_servers']:
|
||||||
archinstall.log(f'Installing {server} ...', level=logging.INFO)
|
archinstall.log(f'Installing {server} ...', level=logging.INFO)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue