default=DEFAULT_INSTALL_DIR,
help='directory where buildtools SDK will be installed (optional)',
action='store')
+ parser.add_argument('--downloads-directory',
+ help='use this directory for tarball/checksum downloads and do not erase them (default is a temporary directory which is deleted after unpacking and installing the buildtools)',
+ action='store')
parser.add_argument('-r', '--release',
default=DEFAULT_RELEASE,
help='Yocto Project release string for SDK which will be '
safe_filename = quote(filename)
buildtools_url = "%s/%s/buildtools/%s" % (base_url, args.release, safe_filename)
- tmpsdk_dir = tempfile.mkdtemp()
+ sdk_dir = args.downloads_directory or tempfile.mkdtemp()
+ os.makedirs(sdk_dir, exist_ok=True)
try:
# Fetch installer
logger.info("Fetching buildtools installer")
- tmpbuildtools = os.path.join(tmpsdk_dir, filename)
+ tmpbuildtools = os.path.join(sdk_dir, filename)
ret = subprocess.call("wget -q -O %s %s" %
(tmpbuildtools, buildtools_url), shell=True)
if ret != 0:
checksum_type = "sha256sum"
check_url = "{}.{}".format(buildtools_url, checksum_type)
checksum_filename = "{}.{}".format(filename, checksum_type)
- tmpbuildtools_checksum = os.path.join(tmpsdk_dir, checksum_filename)
+ tmpbuildtools_checksum = os.path.join(sdk_dir, checksum_filename)
ret = subprocess.call("wget -q -O %s %s" %
(tmpbuildtools_checksum, check_url), shell=True)
if ret != 0:
finally:
# cleanup tmp directory
- shutil.rmtree(tmpsdk_dir)
+ if not args.downloads_directory:
+ shutil.rmtree(sdk_dir)
if __name__ == '__main__':