utils: add get_{user,group}_name() and get_{uid,gid}()

This commit is contained in:
InsanePrawn 2022-08-15 22:37:19 +02:00
parent 98b835c75a
commit 4eacee8cad

View file

@ -1,5 +1,7 @@
import atexit import atexit
import grp
import logging import logging
import pwd
import subprocess import subprocess
from shutil import which from shutil import which
from typing import Optional, Union, Sequence from typing import Optional, Union, Sequence
@ -72,3 +74,27 @@ def log_or_exception(raise_exception: bool, msg: str, exc_class=Exception, log_l
raise exc_class(msg) raise exc_class(msg)
else: else:
logging.log(log_level, msg) logging.log(log_level, msg)
def get_user_name(uid: Union[str, int]) -> str:
if isinstance(uid, int) or uid.isnumeric():
return pwd.getpwuid(int(uid)).pw_name
return uid
def get_group_name(gid: Union[str, int]) -> str:
if isinstance(gid, int) or gid.isnumeric():
return grp.getgrgid(int(gid)).gr_name
return gid
def get_uid(user: Union[int, str]) -> int:
if isinstance(user, int) or user.isnumeric():
return int(user)
return pwd.getpwnam(user).pw_uid
def get_gid(group: Union[int, str]) -> int:
if isinstance(group, int) or group.isnumeric():
return int(group)
return grp.getgrnam(group).gr_gid