From 818b354000b7e2194042c95b2a48df13d1ff28fc Mon Sep 17 00:00:00 2001 From: InsanePrawn Date: Tue, 16 Aug 2022 02:09:44 +0200 Subject: [PATCH] exec/file.py: add {root_,}makedir() --- exec/file.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/exec/file.py b/exec/file.py index fa16248..594fe56 100644 --- a/exec/file.py +++ b/exec/file.py @@ -119,3 +119,19 @@ def remove_file(path: str, recursive=False): rc = run_root_cmd(cmd).returncode if rc: raise Exception(f"Unable to remove {path}: cmd returned {rc}") + + +def makedir(path, user: Optional[str] = None, group: Optional[str] = None, parents: bool = True): + if not root_check_exists(path): + try: + if parents: + os.makedirs(path, exist_ok=True) + else: + os.mkdir(path) + except: + run_root_cmd(['mkdir'] + (['-p'] if parents else []) + [path]) + chown(path, user, group) + + +def root_makedir(path, parents: bool = True): + return makedir(path, user='root', group='root', parents=parents)