From f986ebcb6c1fa7d37c52af35207eaf2d1214ac22 Mon Sep 17 00:00:00 2001 From: Hendrikto Date: Sun, 31 Jan 2021 16:08:48 +0100 Subject: avoid calling external processes Python already offers functions for chowning and chmodding files in its standard library. The os module is even already imported. This commit removes external process calls in favor of using these built-in Python functions. --- meson_post_install.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'meson_post_install.py') diff --git a/meson_post_install.py b/meson_post_install.py index 784d491..0a0fccf 100644 --- a/meson_post_install.py +++ b/meson_post_install.py @@ -2,7 +2,7 @@ import getpass import os -import subprocess +import pwd import sys prefix = os.environ['MESON_INSTALL_DESTDIR_PREFIX'] @@ -12,9 +12,9 @@ pkgdatadir = os.path.join(prefix, sys.argv[2]) pkglibdir = os.path.join(prefix, sys.argv[3]) pkgsysconfdir = os.path.join(prefix, sys.argv[4]) -polkitd_user = sys.argv[5] +polkitd_uid = pwd.getpwnam(sys.argv[5]).pw_uid -subprocess.check_call(['chmod', '4755', os.path.join(bindir, 'pkexec')]) +os.chmod(os.path.join(bindir, 'pkexec'), 0o4775) dst_dirs = [ os.path.join(pkgsysconfdir, 'rules.d'), @@ -23,15 +23,14 @@ dst_dirs = [ for dst in dst_dirs: if not os.path.exists(dst): - os.makedirs(dst) - subprocess.check_call(['chmod', '700', dst]) + os.makedirs(dst, mode=0o700) if getpass.getuser() == "root": - subprocess.check_call(['chown', polkitd_user, dst]) + os.chown(dst, polkitd_uid, -1) # polkit-agent-helper-1 need to be setuid root because it's used to # authenticate not only the invoking user, but possibly also root # and/or other users. dst = os.path.join(pkglibdir, 'polkit-agent-helper-1') -subprocess.check_call(['chmod', '4755', dst]) +os.chmod(dst, 0o4755) if getpass.getuser() == "root": - subprocess.check_call(['chown', 'root', dst]) + os.chown(dst, 0, -1) -- cgit v1.2.1