mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-06-06 15:14:21 -04:00
Use a tarball based download when downloading ephemeral translations
This commit is contained in:
parent
adbd85bf33
commit
6acfcf12ef
@ -4,10 +4,21 @@
|
|||||||
|
|
||||||
from __future__ import absolute_import, division, print_function, unicode_literals
|
from __future__ import absolute_import, division, print_function, unicode_literals
|
||||||
|
|
||||||
import sys, os, textwrap, subprocess, shutil, tempfile, atexit, glob
|
import atexit
|
||||||
|
import glob
|
||||||
|
import io
|
||||||
|
import os
|
||||||
|
import shutil
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import tempfile
|
||||||
|
import textwrap
|
||||||
|
import time
|
||||||
|
|
||||||
from setup import (Command, islinux, isbsd, ishaiku, basenames, modules, functions,
|
from setup import (
|
||||||
__appname__, __version__)
|
Command, __appname__, __version__, basenames, download_securely, functions,
|
||||||
|
isbsd, ishaiku, islinux, modules
|
||||||
|
)
|
||||||
|
|
||||||
HEADER = '''\
|
HEADER = '''\
|
||||||
#!/usr/bin/env python{py_major_version}
|
#!/usr/bin/env python{py_major_version}
|
||||||
@ -336,7 +347,7 @@ class Sdist(Command):
|
|||||||
class Bootstrap(Command):
|
class Bootstrap(Command):
|
||||||
|
|
||||||
description = 'Bootstrap a fresh checkout of calibre from git to a state where it can be installed. Requires various development tools/libraries/headers'
|
description = 'Bootstrap a fresh checkout of calibre from git to a state where it can be installed. Requires various development tools/libraries/headers'
|
||||||
TRANSLATIONS_REPO = 'https://github.com/kovidgoyal/calibre-translations.git'
|
TRANSLATIONS_REPO = 'kovidgoyal/calibre-translations'
|
||||||
sub_commands = 'build iso639 iso3166 translations gui resources cacerts recent_uas'.split()
|
sub_commands = 'build iso639 iso3166 translations gui resources cacerts recent_uas'.split()
|
||||||
|
|
||||||
def add_options(self, parser):
|
def add_options(self, parser):
|
||||||
@ -348,12 +359,25 @@ class Bootstrap(Command):
|
|||||||
if opts.ephemeral:
|
if opts.ephemeral:
|
||||||
if os.path.exists(tdir):
|
if os.path.exists(tdir):
|
||||||
shutil.rmtree(tdir)
|
shutil.rmtree(tdir)
|
||||||
subprocess.check_call(['git', 'clone', '--depth=1', self.TRANSLATIONS_REPO, 'translations'], cwd=self.d(self.SRC))
|
|
||||||
|
tarball_url = 'https://api.github.com/repos/{}/tarball'.format(self.TRANSLATIONS_REPO)
|
||||||
|
import tarfile
|
||||||
|
self.info('Downloading translations...')
|
||||||
|
st = time.time()
|
||||||
|
data = download_securely(tarball_url)
|
||||||
|
tarfile.open(fileobj=io.BytesIO(data)).extractall(tdir)
|
||||||
|
x = os.listdir(tdir)[0]
|
||||||
|
for y in os.listdir(os.path.join(tdir, x)):
|
||||||
|
os.rename(os.path.join(tdir, x, y), os.path.join(tdir, y))
|
||||||
|
os.rmdir(os.path.join(tdir, x))
|
||||||
|
print('Downloaded translations in %d seconds' % int(time.time() - st))
|
||||||
else:
|
else:
|
||||||
if os.path.exists(tdir):
|
if os.path.exists(tdir):
|
||||||
subprocess.check_call(['git', 'pull'], cwd=tdir)
|
subprocess.check_call(['git', 'pull'], cwd=tdir)
|
||||||
else:
|
else:
|
||||||
subprocess.check_call(['git', 'clone', self.TRANSLATIONS_REPO, 'translations'], cwd=self.d(self.SRC))
|
subprocess.check_call([
|
||||||
|
'git', 'clone', 'https://github.com/{}.git'.format(self.TRANSLATIONS_REPO),
|
||||||
|
'translations'], cwd=self.d(self.SRC))
|
||||||
|
|
||||||
def run(self, opts):
|
def run(self, opts):
|
||||||
self.info('\n\nAll done! You should now be able to run "%s setup.py install" to install calibre' % sys.executable)
|
self.info('\n\nAll done! You should now be able to run "%s setup.py install" to install calibre' % sys.executable)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user