X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=daklib%2Futils.py;h=03cd589463c5e81908529c8d8ed17927d6082abc;hb=922bd52cf4fc88bdb802ff7f3f26beeca1f171c5;hp=93f4c0ddde9aa6eae5b27aee4692d0837c68989a;hpb=cb66f3a8fedf2f54e77b351dcdc4eda750ca2a11;p=dak.git diff --git a/daklib/utils.py b/daklib/utils.py index 93f4c0dd..03cd5894 100755 --- a/daklib/utils.py +++ b/daklib/utils.py @@ -27,6 +27,7 @@ import datetime import email.Header import os import pwd +import grp import select import socket import shutil @@ -1444,18 +1445,32 @@ def clean_symlink (src, dest, root): def temp_filename(directory=None, prefix="dak", suffix="", mode=None, group=None): """ Return a secure and unique filename by pre-creating it. - If 'directory' is non-null, it will be the directory the file is pre-created in. - If 'prefix' is non-null, the filename will be prefixed with it, default is dak. - If 'suffix' is non-null, the filename will end with it. - Returns a pair (fd, name). + @type directory: str + @param directory: If non-null it will be the directory the file is pre-created in. + + @type prefix: str + @param prefix: The filename will be prefixed with this string + + @type suffix: str + @param suffix: The filename will end with this string + + @type mode: str + @param mode: If set the file will get chmodded to those permissions + + @type group: str + @param group: If set the file will get chgrped to the specified group. + + @rtype: list + @return: Returns a pair (fd, name) """ (tfd, tfname) = tempfile.mkstemp(suffix, prefix, directory) if mode: os.chmod(tfname, mode) if group: - os.chown(tfname, -1, group) + gid = grp.getgrnam(group).gr_gid + os.chown(tfname, -1, gid) return (tfd, tfname) ################################################################################ @@ -1463,19 +1478,33 @@ def temp_filename(directory=None, prefix="dak", suffix="", mode=None, group=None def temp_dirname(parent=None, prefix="dak", suffix="", mode=None, group=None): """ Return a secure and unique directory by pre-creating it. - If 'parent' is non-null, it will be the directory the directory is pre-created in. - If 'prefix' is non-null, the filename will be prefixed with it, default is dak. - If 'suffix' is non-null, the filename will end with it. - Returns a pathname to the new directory + @type parent: str + @param parent: If non-null it will be the directory the directory is pre-created in. + + @type prefix: str + @param prefix: The filename will be prefixed with this string + + @type suffix: str + @param suffix: The filename will end with this string + + @type mode: str + @param mode: If set the file will get chmodded to those permissions + + @type group: str + @param group: If set the file will get chgrped to the specified group. + + @rtype: list + @return: Returns a pair (fd, name) + """ - (tfd, tfname) = tempfile.mkdtemp(suffix, prefix, parent) + tfname = tempfile.mkdtemp(suffix, prefix, parent) if mode: os.chmod(tfname, mode) if group: os.chown(tfname, -1, group) - return (tfd, tfname) + return tfname ################################################################################