diff options
author | Laurentiu Palcu <laurentiu.palcu@intel.com> | 2012-09-25 19:35:46 +0300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-09-26 14:54:27 +0100 |
commit | 26daec758b2eaeb208356d5aa8a9a191bd366751 (patch) | |
tree | 6e0f3c9f29800415256972d89e56feff82fc75be /scripts | |
parent | 99974820c8b12b1c1b05ab8a96f1b25b8e3888da (diff) | |
download | openembedded-core-26daec758b2eaeb208356d5aa8a9a191bd366751.tar.gz openembedded-core-26daec758b2eaeb208356d5aa8a9a191bd366751.tar.bz2 openembedded-core-26daec758b2eaeb208356d5aa8a9a191bd366751.zip |
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]
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/relocate_sdk.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/scripts/relocate_sdk.py b/scripts/relocate_sdk.py index b247e65ce3..637ffe9483 100755 --- a/scripts/relocate_sdk.py +++ b/scripts/relocate_sdk.py @@ -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: |