X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Futils.py;h=93f4c0ddde9aa6eae5b27aee4692d0837c68989a;hb=cb66f3a8fedf2f54e77b351dcdc4eda750ca2a11;hp=377d191348d51df9ecd62669cc1c3f244a655f19;hpb=a47ca6dffe217f5bd0898fbeb424a6ed589f34f0;p=dak.git diff --git a/daklib/utils.py b/daklib/utils.py old mode 100644 new mode 100755 index 377d1913..93f4c0dd --- a/daklib/utils.py +++ b/daklib/utils.py @@ -1441,7 +1441,7 @@ def clean_symlink (src, dest, root): ################################################################################ -def temp_filename(directory=None, prefix="dak", suffix=""): +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. @@ -1451,11 +1451,16 @@ def temp_filename(directory=None, prefix="dak", suffix=""): Returns a pair (fd, name). """ - return tempfile.mkstemp(suffix, prefix, directory) + (tfd, tfname) = tempfile.mkstemp(suffix, prefix, directory) + if mode: + os.chmod(tfname, mode) + if group: + os.chown(tfname, -1, group) + return (tfd, tfname) ################################################################################ -def temp_dirname(parent=None, prefix="dak", suffix=""): +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. @@ -1465,7 +1470,12 @@ def temp_dirname(parent=None, prefix="dak", suffix=""): Returns a pathname to the new directory """ - return tempfile.mkdtemp(suffix, prefix, parent) + (tfd, tfname) = tempfile.mkdtemp(suffix, prefix, parent) + if mode: + os.chmod(tfname, mode) + if group: + os.chown(tfname, -1, group) + return (tfd, tfname) ################################################################################