about summary refs log tree commit diff
path: root/devscripts/transition_helper.py
blob: cfd21919bfcaf45d958bbd65a54571a9c21e7e99 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/env python

import sys, os

try:
    import urllib.request as compat_urllib_request
except ImportError:  # Python 2
    import urllib2 as compat_urllib_request

sys.stderr.write(u'Hi! We changed distribution method and now youtube-dl needs to update itself one more time.\n')
sys.stderr.write(u'This will only happen once. Simply press enter to go on. Sorry for the trouble!\n')
sys.stderr.write(u'The new location of the binaries is https://github.com/rg3/youtube-dl/downloads, not the git repository.\n\n')

try:
    raw_input()
except NameError:  # Python 3
    input()

filename = sys.argv[0]

API_URL = "https://api.github.com/repos/rg3/youtube-dl/downloads"
BIN_URL = "https://github.com/downloads/rg3/youtube-dl/youtube-dl"

if not os.access(filename, os.W_OK):
    sys.exit('ERROR: no write permissions on %s' % filename)

try:
    urlh = compat_urllib_request.urlopen(BIN_URL)
    newcontent = urlh.read()
    urlh.close()
except (IOError, OSError) as err:
    sys.exit('ERROR: unable to download latest version')

try:
    with open(filename, 'wb') as outf:
        outf.write(newcontent)
except (IOError, OSError) as err:
    sys.exit('ERROR: unable to overwrite current version')

sys.stderr.write(u'Done! Now you can run youtube-dl.\n')