From 8c64aa48d26faece135a8a57a5986fef64fd50a5 Mon Sep 17 00:00:00 2001 From: Philipp Hagemeister Date: Tue, 11 Dec 2012 17:34:33 +0100 Subject: [PATCH] New generate-download for the new build mechanism --- generate-download | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/generate-download b/generate-download index 4fb6ce004..f19729f59 100755 --- a/generate-download +++ b/generate-download @@ -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)