Skip to content
Snippets Groups Projects
Unverified Commit a1f90d5b authored by Todd Gamblin's avatar Todd Gamblin Committed by GitHub
Browse files

bugfix: use OS default permissions for mkdirp when mode is not provided (#9604)

- #8773 made the default mode 0o777, which is what's documented but
   mkdirp actually takes the OS default or umask by default

- revert to the Python default by default, and only set the mode when
  asked explicitly.
parent a0fb2838
Branches
Tags
No related merge requests found
......@@ -414,13 +414,22 @@ def get_filetype(path_name):
def mkdirp(*paths, **kwargs):
"""Creates a directory, as well as parent directories if needed."""
mode = kwargs.get('mode', stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO)
"""Creates a directory, as well as parent directories if needed.
Arguments:
paths (str): paths to create with mkdirp
Keyword Aguments:
mode (permission bits or None, optional): optional permissions to
set on the created directory -- use OS default if not provided
"""
mode = kwargs.get('mode', None)
for path in paths:
if not os.path.exists(path):
try:
os.makedirs(path, mode)
os.chmod(path, mode) # For systems that ignore makedirs mode
os.makedirs(path)
if mode is not None:
os.chmod(path, mode)
except OSError as e:
if e.errno != errno.EEXIST or not os.path.isdir(path):
raise e
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment