New generate-download for the new build mechanism
This commit is contained in:
parent
8c3a45b6e4
commit
8c64aa48d2
@ -1,34 +1,33 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python3
|
||||||
import hashlib
|
import hashlib
|
||||||
import os.path
|
import shutil
|
||||||
import subprocess
|
import subprocess
|
||||||
|
import tempfile
|
||||||
|
import urllib.request
|
||||||
|
|
||||||
try:
|
URL = 'https://github.com/downloads/rg3/youtube-dl/youtube-dl'
|
||||||
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
|
|
||||||
|
|
||||||
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
|
# 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()
|
md5sum = hashlib.md5(data).hexdigest()
|
||||||
sha1sum = hashlib.sha1(data).hexdigest()
|
sha1sum = hashlib.sha1(data).hexdigest()
|
||||||
sha256sum = hashlib.sha256(data).hexdigest()
|
sha256sum = hashlib.sha256(data).hexdigest()
|
||||||
template = template.replace('@PROGRAM_VERSION@', version)
|
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_MD5SUM@', md5sum)
|
||||||
template = template.replace('@PROGRAM_SHA1SUM@', sha1sum)
|
template = template.replace('@PROGRAM_SHA1SUM@', sha1sum)
|
||||||
template = template.replace('@PROGRAM_SHA256SUM@', sha256sum)
|
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)
|
||||||
|
Loading…
Reference in New Issue
Block a user