Update update mechanism (Closes #4)
authorPhilipp Hagemeister <phihag@phihag.de>
Sun, 28 Aug 2011 21:38:40 +0000 (23:38 +0200)
committerPhilipp Hagemeister <phihag@phihag.de>
Sun, 28 Aug 2011 21:38:40 +0000 (23:38 +0200)
LATEST_VERSION [deleted file]
youtube-dl

diff --git a/LATEST_VERSION b/LATEST_VERSION
deleted file mode 100644 (file)
index 8a3bb04..0000000
+++ /dev/null
@@ -1 +0,0 @@
-2011.08.04
index 5ffd53b..534c7ac 100755 (executable)
@@ -15,6 +15,8 @@ __author__  = (
 __license__ = 'Public Domain'
 __version__ = '2011.08.28-phihag'
 
+UPDATE_URL = 'https://raw.github.com/phihag/youtube-dl/master/youtube-dl'
+
 import cookielib
 import datetime
 import gzip
@@ -3071,24 +3073,27 @@ def updateSelf(downloader, filename):
        if not os.access(filename, os.W_OK):
                sys.exit('ERROR: no write permissions on %s' % filename)
 
-       downloader.to_screen('Updating to latest stable version...')
+       downloader.to_screen('Updating to latest version...')
 
        try:
-               latest_url = 'http://github.com/rg3/youtube-dl/raw/master/LATEST_VERSION'
-               latest_version = urllib.urlopen(latest_url).read().strip()
-               prog_url = 'http://github.com/rg3/youtube-dl/raw/%s/youtube-dl' % latest_version
-               newcontent = urllib.urlopen(prog_url).read()
+               try:
+                       urlh = urllib.urlopen(UPDATE_URL)
+                       newcontent = urlh.read()
+               finally:
+                       urlh.close()
        except (IOError, OSError), err:
                sys.exit('ERROR: unable to download latest version')
 
        try:
-               stream = open(filename, 'wb')
-               stream.write(newcontent)
-               stream.close()
+               outf = open(filename, 'wb')
+               try:
+                       outf.write(newcontent)
+               finally:
+                       outf.close()
        except (IOError, OSError), err:
                sys.exit('ERROR: unable to overwrite current version')
 
-       downloader.to_screen('Updated to version %s' % latest_version)
+       downloader.to_screen('Updated youtube-dl. Restart to use the new version.')
 
 def parseOpts():
        # Deferred imports