index : archinstall32 | |
Archlinux32 installer | gitolite user |
summaryrefslogtreecommitdiff |
author | Anton Hvornum <anton.feeds@gmail.com> | 2021-11-01 10:42:04 +0000 |
---|---|---|
committer | Anton Hvornum <anton.feeds@gmail.com> | 2021-11-01 10:42:04 +0000 |
commit | 0d691fc487e561de93033d4e537f42a4e4c91a13 (patch) | |
tree | 9629a38f44556e945e240066344bd50b9b02db01 /archinstall/lib | |
parent | b8808491937a6140c9b4df00b4f27ef0405344a4 (diff) |
-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): |