SDK: trap any IO errors in the relocate script

If the files being relocated are already used by other processes the
relocate script will fail with a traceback. This patch will trap any IO
errors when opening such a file and gracefully report them to the user.

Also change the exit code from 1 to -1 for a better adt-installer user
experience (like pointing the user to the adt_installer.log).

[YOCTO #3164]

(From OE-Core rev: 26daec758b2eaeb208356d5aa8a9a191bd366751)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Laurentiu Palcu 2012-09-25 19:35:46 +03:00 committed by Richard Purdie
parent 04ced3d738
commit 6bc5925ea9
1 changed files with 12 additions and 2 deletions

View File

@ -29,6 +29,7 @@ import sys
import stat
import os
import re
import errno
old_prefix = re.compile("##DEFAULT_INSTALL_DIR##")
@ -171,7 +172,7 @@ def change_dl_sysdirs():
# MAIN
if len(sys.argv) < 4:
exit(1)
exit(-1)
new_prefix = sys.argv[1]
new_dl_path = sys.argv[2]
@ -184,7 +185,16 @@ for e in executables_list:
else:
os.chmod(e, perms|stat.S_IRWXU)
f = open(e, "r+b")
try:
f = open(e, "r+b")
except IOError as ioex:
if ioex.errno == errno.ETXTBSY:
print("Could not open %s. File used by another process.\nPlease "\
"make sure you exit all processes that might use any SDK "\
"binaries." % e)
else:
print("Could not open %s: %s(%d)" % (e, ioex.strerror, ioex.errno))
exit(-1)
arch = get_arch()
if arch: