mercurial/util.py
changeset 15049 79a861b8f553
parent 15031 0cb27eda3a1e
child 15050 ff3e93686306
equal deleted inserted replaced
15048:2f0a3977c939 15049:79a861b8f553
   781 def makedirs(name, mode=None):
   781 def makedirs(name, mode=None):
   782     """recursive directory creation with parent mode inheritance"""
   782     """recursive directory creation with parent mode inheritance"""
   783     parent = os.path.abspath(os.path.dirname(name))
   783     parent = os.path.abspath(os.path.dirname(name))
   784     try:
   784     try:
   785         os.mkdir(name)
   785         os.mkdir(name)
   786         if mode is not None:
       
   787             os.chmod(name, mode)
       
   788         return
       
   789     except OSError, err:
   786     except OSError, err:
   790         if err.errno == errno.EEXIST:
   787         if err.errno == errno.EEXIST:
   791             return
   788             return
   792         if not name or parent == name or err.errno != errno.ENOENT:
   789         if not name or parent == name or err.errno != errno.ENOENT:
   793             raise
   790             raise
   794     makedirs(parent, mode)
   791         makedirs(parent, mode)
   795     makedirs(name, mode)
   792         makedirs(name, mode)
       
   793     if mode is not None:
       
   794         os.chmod(name, mode)
   796 
   795 
   797 def readfile(path):
   796 def readfile(path):
   798     fp = open(path, 'rb')
   797     fp = open(path, 'rb')
   799     try:
   798     try:
   800         return fp.read()
   799         return fp.read()