diff options
author | Nicholas Corgan <nick.corgan@ettus.com> | 2013-11-08 09:18:31 -0800 |
---|---|---|
committer | Nicholas Corgan <nick.corgan@ettus.com> | 2013-11-08 09:18:31 -0800 |
commit | d02adc5693fa34f81278c0d5c9d94bfd3bee7943 (patch) | |
tree | a485ff414ff236098c78eb3f486f91ed0921afcc /host/utils | |
parent | 15f2430e9e3e9ed7e196ec8fbd9ff1702ca6cb74 (diff) | |
download | uhd-d02adc5693fa34f81278c0d5c9d94bfd3bee7943.tar.gz uhd-d02adc5693fa34f81278c0d5c9d94bfd3bee7943.tar.bz2 uhd-d02adc5693fa34f81278c0d5c9d94bfd3bee7943.zip |
uhd_images_downloader: more improvements/fixes
* Better error handling
* Improved default download location logic
Diffstat (limited to 'host/utils')
-rw-r--r-- | host/utils/uhd_images_downloader.py.in | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/host/utils/uhd_images_downloader.py.in b/host/utils/uhd_images_downloader.py.in index 87c148258..91f32825f 100644 --- a/host/utils/uhd_images_downloader.py.in +++ b/host/utils/uhd_images_downloader.py.in @@ -45,16 +45,23 @@ class temp_dir(): return self.name def __exit__(self, type, value, traceback): try: - os.removedirs(self.name) - except: + shutil.rmtree(self.name) + except OSError: #Utility should have already detected this, but this is for safety raise Exception("Could not install images! Make sure you have write permissions.") if __name__ == "__main__": + print + if os.environ.get("UHD_IMAGES_DIR") != None and os.environ.get("UHD_IMAGES_DIR") != "": + default_images_dir = os.environ.get("UHD_IMAGES_DIR") + print "UHD_IMAGES_DIR environment variable is set. Default install location: %s" % default_images_dir + else: + default_images_dir = "@CMAKE_INSTALL_PREFIX@/share/uhd/images" + #Command line options parser = OptionParser() - parser.add_option("--install-location", type="string", default="", help="Set custom install location for images") + parser.add_option("--install-location", type="string", default=default_images_dir, help="Set custom install location for images") parser.add_option("--buffer-size", type="int", default=8192, help="Set download buffer size, [default=%default]",) (options, args) = parser.parse_args() @@ -69,18 +76,21 @@ if __name__ == "__main__": with temp_dir() as dirname: os.chdir(dirname) - #Configuring image destination - if options.install_location != "": - images_dir = os.path.abspath(os.path.join(current_directory, options.install_location)) - elif os.environ.get("UHD_IMAGES_DIR") != "" and os.environ.get("UHD_IMAGES_DIR") != None: - images_dir = os.environ.get("UHD_IMAGES_DIR") + if options.install_location == default_images_dir: + images_dir = default_images_dir + elif os.path.isabs(options.install_location): + #Custom absolute path given + images_dir = options.install_location else: - images_dir = "@CMAKE_INSTALL_PREFIX@/share/uhd/images" - + #Custom relative path given, so construct absolute path + images_dir = os.path.abspath(os.path.join(current_directory, options.install_location)) + #Before doing anything, check for write permissions in parent directory parent_directory = os.path.dirname(images_dir) - if not os.access(parent_directory, os.W_OK): - sys.stderr.write("You do not have write permissions at the install location!\n") + if os.access(parent_directory, os.W_OK): + print "Downloading images to: %s" % images_dir + else: + print "You do not have write permissions at the install location!" sys.exit(1) opener = urllib2.build_opener() @@ -129,8 +139,8 @@ if __name__ == "__main__": if os.path.exists(images_dir): try: shutil.rmtree(images_dir) - except: - sys.stderr.write("\nMake sure you have write permissions in the images directory.\n") + except OSError: + print "Make sure you have write permissions in the images directory." sys.exit(1) #Copying downloaded images into images_dir |