New generate-download for the new build mechanism
This commit is contained in:
		| @@ -1,34 +1,33 @@ | ||||
| #!/usr/bin/env python | ||||
| #!/usr/bin/env python3 | ||||
| import hashlib | ||||
| import os.path | ||||
| import shutil | ||||
| import subprocess | ||||
| import tempfile | ||||
| import urllib.request | ||||
|  | ||||
| try: | ||||
| 	from subprocess import check_output | ||||
| except ImportError: # Python < 2.7 | ||||
| 	def check_output(*args, **kwargs): | ||||
| 		p = subprocess.Popen(*args, stdout=subprocess.PIPE, **kwargs) | ||||
| 		out,err = p.communicate() | ||||
| 		if p.returncode != 0: | ||||
| 			raise subprocess.CalledProcessError(p.returncode, args) | ||||
| 		return out | ||||
| URL = 'https://github.com/downloads/rg3/youtube-dl/youtube-dl' | ||||
|  | ||||
| youtubeDlDir = os.path.join(os.path.dirname(__file__), '..', 'youtube-dl') | ||||
| with tempfile.NamedTemporaryFile(suffix='youtube-dl', delete=True) as ytdl_file: | ||||
|     with urllib.request.urlopen(URL) as dl: | ||||
|         shutil.copyfileobj(dl, ytdl_file) | ||||
|  | ||||
|     ytdl_file.seek(0) | ||||
|     data = ytdl_file.read() | ||||
|  | ||||
|     ytdl_file.flush() | ||||
|     version = subprocess.check_output(['python3', ytdl_file.name, '--version']).decode('ascii').strip() | ||||
|  | ||||
| # Read template page | ||||
| template = file('download.html.in', 'r').read() | ||||
| with open('download.html.in', 'r', encoding='utf-8') as tmplf: | ||||
|     template = tmplf.read() | ||||
|  | ||||
| # Build replacement strings | ||||
| version = check_output([os.path.join(youtubeDlDir, 'youtube-dl'), '--version']).strip() | ||||
| data = check_output(['git', 'show', '%s:youtube-dl' % version], cwd=youtubeDlDir) | ||||
|  | ||||
| url = 'https://github.com/rg3/youtube-dl/raw/%s/youtube-dl' % version | ||||
| md5sum = hashlib.md5(data).hexdigest() | ||||
| sha1sum = hashlib.sha1(data).hexdigest() | ||||
| sha256sum = hashlib.sha256(data).hexdigest() | ||||
| template = template.replace('@PROGRAM_VERSION@', version) | ||||
| template = template.replace('@PROGRAM_URL@', url) | ||||
| template = template.replace('@PROGRAM_URL@', URL) | ||||
| template = template.replace('@PROGRAM_MD5SUM@', md5sum) | ||||
| template = template.replace('@PROGRAM_SHA1SUM@', sha1sum) | ||||
| template = template.replace('@PROGRAM_SHA256SUM@', sha256sum) | ||||
| file('download.html', 'w').write(template) | ||||
| with open('download.html', 'w', encoding='utf-8') as dlf: | ||||
|     dlf.write(template) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user