Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archinstall/lib/installer.py5
-rw-r--r--archinstall/lib/user_interaction.py7
-rw-r--r--examples/guided.py6
3 files changed, 15 insertions, 3 deletions
diff --git a/archinstall/lib/installer.py b/archinstall/lib/installer.py
index 39e3447d..2604e77d 100644
--- a/archinstall/lib/installer.py
+++ b/archinstall/lib/installer.py
@@ -1,4 +1,4 @@
-import os, stat, time, shutil
+import os, stat, time, shutil, pathlib
from .exceptions import *
from .disk import *
@@ -171,7 +171,8 @@ class Installer():
def set_timezone(self, zone, *args, **kwargs):
if not len(zone): return True
- o = b''.join(sys_command(f'/usr/bin/arch-chroot {self.mountpoint} ln -s /usr/share/zoneinfo/{zone} /etc/localtime'))
+ (pathlib.Path(self.mountpoint)/"etc"/"localtime").unlink(missing_ok=True)
+ sys_command(f'/usr/bin/arch-chroot {self.mountpoint} ln -s /usr/share/zoneinfo/{zone} /etc/localtime')
return True
def activate_ntp(self):
diff --git a/archinstall/lib/user_interaction.py b/archinstall/lib/user_interaction.py
index ab2b19bc..6b3e5faa 100644
--- a/archinstall/lib/user_interaction.py
+++ b/archinstall/lib/user_interaction.py
@@ -1,4 +1,4 @@
-import getpass
+import getpass, pathlib
from .exceptions import *
from .profiles import Profile
from .locale_helpers import search_keyboard_layout
@@ -50,6 +50,11 @@ def ask_for_additional_users(prompt='Any additional users to install (leave blan
return users, super_users
+def ask_for_a_timezone():
+ timezone = input('Enter a valid timezone (Example: Europe/Stockholm): ').strip()
+ if pathlib.Path(timezone).exists():
+ return timezone
+
def ask_to_configure_network():
# Optionally configure one network interface.
#while 1:
diff --git a/examples/guided.py b/examples/guided.py
index 655fc29f..e9edac09 100644
--- a/examples/guided.py
+++ b/examples/guided.py
@@ -190,6 +190,9 @@ def ask_user_questions():
if not archinstall.arguments['nic']:
archinstall.log(f"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()
+
def perform_installation_steps():
global SIG_TRIGGER
@@ -323,6 +326,9 @@ def perform_installation(device, boot_partition, language, mirrors):
for superuser, user_info in archinstall.arguments.get('superusers', {}).items():
installation.user_create(superuser, user_info["!password"], sudo=True)
+ if (timezone := archinstall.arguments.get('timezone', None)):
+ installation.set_timezone(timezone)
+
if (root_pw := archinstall.arguments.get('!root-password', None)) and len(root_pw):
installation.user_set_pw('root', root_pw)