os.remove shouldn't fail, if file doesn't exist

Summary:
os.remove might throw an exception (of type OSError), if given file
doesn't exist. Catch the exception, and ignore it //iff// errno is
ENOENT. Rethrow the exception, if errno is not ENOENT.

Reviewers: emaste

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D6362

llvm-svn: 229334
This commit is contained in:
Ismail Pazarbasi 2015-02-15 21:50:28 +00:00
parent b1607ab354
commit 323e3b6ae0
1 changed files with 14 additions and 2 deletions

View File

@ -429,6 +429,18 @@ def get_config_build_dir( vDictArgs, vstrFrameworkPythonDir ):
return (bOk, strConfigBldDir, strErrMsg);
"""
Removes given file, ignoring error if it doesn't exist.
"""
def remove_ignore_enoent(filename):
try:
os.remove( strSwigOutputFile );
except OSError as e:
import errno
if e.errno != errno.ENOENT:
raise
pass
#++---------------------------------------------------------------------------
# Details: Do a SWIG code rebuild. Any number returned by SWIG which is not
# zero is treated as an error. The generate dependencies flag decides
@ -685,7 +697,7 @@ def main( vDictArgs ):
# iOS be sure to set LLDB_DISABLE_PYTHON to 1.
if (strEnvVarLLDBDisablePython != None) and \
(strEnvVarLLDBDisablePython == "1"):
os.remove( strSwigOutputFile );
remove_ignore_enoent( strSwigOutputFile )
open( strSwigOutputFile, 'w' ).close(); # Touch the file
if bDebug:
strMsg = strMsgLldbDisablePython;
@ -698,7 +710,7 @@ def main( vDictArgs ):
None );
if (strEnvVarGccPreprocessDefs != None) or \
(strEnvVarLLDBDisablePython != None):
os.remove( strSwigOutputFile );
remove_ignore_enoent( strSwigOutputFile )
open( strSwigOutputFile, 'w' ).close(); # Touch the file
if bDebug:
strMsg = strMsgLldbDisableGccEnv;