Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbed-sdk-tools by
Diff: utils.py
- Revision:
- 17:04753e1e329d
- Parent:
- 13:ab47a20b66f0
- Child:
- 19:3604ee113e2d
diff -r a6285a7e5cc6 -r 04753e1e329d utils.py --- a/utils.py Thu Jul 14 21:29:46 2016 +0100 +++ b/utils.py Fri Jul 15 12:33:09 2016 +0100 @@ -33,10 +33,22 @@ raise Exception('ERROR %d: "%s"' % (rc, text)) -def run_cmd(command, wd=None, redirect=False): +def run_cmd(command, work_dir=None, chroot=None, redirect=False): + if chroot: + # Conventions managed by the web team for the mbed.org build system + chroot_cmd = [ + '/usr/sbin/chroot', '--userspec=33:33', chroot + ] + for c in command: + chroot_cmd += [c.replace(chroot, '')] + + logging.debug("Running command %s"%' '.join(chroot_cmd)) + command = chroot_cmd + work_dir = chroot + assert is_cmd_valid(command[0]) try: - p = Popen(command, stdout=PIPE, stderr=STDOUT if redirect else PIPE, cwd=wd) + p = Popen(command, stdout=PIPE, stderr=STDOUT if redirect else PIPE, cwd=work_dir) _stdout, _stderr = p.communicate() except OSError as e: print "[OS ERROR] Command: "+(' '.join(command))