From: Zac Medico Date: Wed, 1 Sep 2010 15:42:15 +0000 (-0700) Subject: Make ensure_dirs() use os.path.isdir() to verify that the directory X-Git-Tag: v2.2_rc73~4 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=e88c73abd34c44e6b7ca897dfa2d1fc6be320f1f;p=portage.git Make ensure_dirs() use os.path.isdir() to verify that the directory exists when EISDIR is raised, since this is abnormal behavior. --- diff --git a/pym/portage/util/__init__.py b/pym/portage/util/__init__.py index b11222d00..aa37e8c3c 100644 --- a/pym/portage/util/__init__.py +++ b/pym/portage/util/__init__.py @@ -1054,13 +1054,14 @@ def ensure_dirs(dir_path, **kwargs): created_dir = True except OSError as oe: func_call = "makedirs('%s')" % dir_path - if oe.errno in (errno.EEXIST, errno.EISDIR): - # Bug 187518 - sometimes mkdir raises EISDIR on FreeBSD + if oe.errno in (errno.EEXIST,): pass else: if os.path.isdir(dir_path): # NOTE: DragonFly raises EPERM for makedir('/') # and that is supposed to be ignored here. + # Also, sometimes mkdir raises EISDIR on FreeBSD + # and we want to ignore that too (bug #187518). pass elif oe.errno == errno.EPERM: raise OperationNotPermitted(func_call)