summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/spack/llnl/util/filesystem.py17
1 files changed, 13 insertions, 4 deletions
diff --git a/lib/spack/llnl/util/filesystem.py b/lib/spack/llnl/util/filesystem.py
index 3a43cfd582..99dfc9a4fd 100644
--- a/lib/spack/llnl/util/filesystem.py
+++ b/lib/spack/llnl/util/filesystem.py
@@ -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