index : archinstall32 | |
Archlinux32 installer | gitolite user |
summaryrefslogtreecommitdiff |
-rw-r--r-- | archinstall/lib/installer.py | 18 |
diff --git a/archinstall/lib/installer.py b/archinstall/lib/installer.py index 0bdddb2e..bf892826 100644 --- a/archinstall/lib/installer.py +++ b/archinstall/lib/installer.py @@ -14,6 +14,18 @@ from .exceptions import DiskError, ServiceException __packages__ = ["base", "base-devel", "linux-firmware", "linux", "linux-lts", "linux-zen", "linux-hardened"] +class InstallationFile: + def __init__(self, installation, filename, owner): + self.installation = installation + self.filename = filename + self.owner = owner + + def __enter__(self): + return self + + def __exit__(self): + self.installation.chown(owner, self.filename) + class Installer: """ `Installer()` is the wrapper for most basic installation steps. @@ -623,6 +635,12 @@ class Installer: o = b''.join(SysCommand(f"/usr/bin/arch-chroot {self.target} sh -c \"chsh -s {shell} {user}\"")) pass + def chown(self, owner, path, options=[]): + return SysCommand(f"/usr/bin/arch-chroot {self.target} sh -c 'chown {' '.join(options)} {owner} {path}") + + def create_file(self, filename, owner=None): + return InstallationFile(self, filename, owner) + def set_keyboard_language(self, language: str) -> bool: if len(language.strip()): if not verify_keyboard_layout(language): |