aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicholas Corgan <nick.corgan@ettus.com>2013-11-04 08:20:47 -0800
committerNicholas Corgan <nick.corgan@ettus.com>2013-11-04 08:20:47 -0800
commit15f2430e9e3e9ed7e196ec8fbd9ff1702ca6cb74 (patch)
tree76a13f9f3798a3d41ebc33bc69bee6b0d74d6411
parent44895b30b71be7b7e851ca04388d0f6d18f4aefd (diff)
downloaduhd-15f2430e9e3e9ed7e196ec8fbd9ff1702ca6cb74.tar.gz
uhd-15f2430e9e3e9ed7e196ec8fbd9ff1702ca6cb74.tar.bz2
uhd-15f2430e9e3e9ed7e196ec8fbd9ff1702ca6cb74.zip
uhd_images_downloader fixes/improvements
* Permissions checking leads to clearer errors when user doesn't have write permissions * Relative paths work
-rw-r--r--host/utils/uhd_images_downloader.py.in21
1 files changed, 17 insertions, 4 deletions
diff --git a/host/utils/uhd_images_downloader.py.in b/host/utils/uhd_images_downloader.py.in
index e7fc9e8a5..87c148258 100644
--- a/host/utils/uhd_images_downloader.py.in
+++ b/host/utils/uhd_images_downloader.py.in
@@ -44,7 +44,11 @@ class temp_dir():
self.name = tempfile.mkdtemp()
return self.name
def __exit__(self, type, value, traceback):
- os.removedirs(self.name)
+ try:
+ os.removedirs(self.name)
+ except:
+ #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__":
@@ -59,17 +63,26 @@ if __name__ == "__main__":
images_zip_md5sum = "@UHD_IMAGES_MD5SUM@"
filename = images_src.split("/")[-1]
+ #Use this directory with relative paths
+ current_directory = os.getcwd()
+
with temp_dir() as dirname:
os.chdir(dirname)
#Configuring image destination
if options.install_location != "":
- images_dir = 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")
else:
images_dir = "@CMAKE_INSTALL_PREFIX@/share/uhd/images"
+ #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")
+ sys.exit(1)
+
opener = urllib2.build_opener()
opener.add_headers = [('User-Agent', 'UHD Images Downloader')]
u = opener.open(images_src)
@@ -118,10 +131,10 @@ if __name__ == "__main__":
shutil.rmtree(images_dir)
except:
sys.stderr.write("\nMake sure you have write permissions in the images directory.\n")
- sys.exit(0)
+ sys.exit(1)
#Copying downloaded images into images_dir
- shutil.copytree("tempdir/%s/share/uhd/images" % filename[:-4],images_dir)
+ shutil.copytree(os.path.join('tempdir', os.path.splitext(filename)[0], 'share', 'uhd', 'images'), images_dir)
#Removing tempdir and zip file
shutil.rmtree("tempdir")