mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-07 10:14:46 -04:00
Make the installer run non-interactively with installation dir specified via environment variable
This commit is contained in:
parent
b2b2f61e96
commit
6ad895cd72
@ -7,7 +7,7 @@ __license__ = 'GPL v3'
|
||||
__copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
|
||||
__docformat__ = 'restructuredtext en'
|
||||
|
||||
import sys, os, shutil, subprocess, re, platform, time, signal, textwrap, tempfile, hashlib, errno
|
||||
import sys, os, shutil, subprocess, re, platform, time, signal, tempfile, hashlib, errno
|
||||
import ssl, socket
|
||||
from contextlib import closing
|
||||
|
||||
@ -617,17 +617,9 @@ def check_version():
|
||||
if calibre_version == '%version':
|
||||
calibre_version = urllib.urlopen('http://status.calibre-ebook.com/latest').read()
|
||||
|
||||
def main(install_dir=None, bin_dir=None, share_dir=None, isolated=False):
|
||||
def main(bin_dir=None, share_dir=None, isolated=False):
|
||||
defdir = '/opt'
|
||||
autodir = os.environ.get('CALIBRE_INSTALL_DIR', install_dir)
|
||||
automated = False
|
||||
if (autodir is None or not os.path.exists(autodir) or not
|
||||
os.path.isdir(autodir)):
|
||||
destdir = raw_input('Enter the installation directory for calibre [%s]: '%defdir).strip()
|
||||
else:
|
||||
automated = True
|
||||
prints('Automatically installing to: %s'%autodir)
|
||||
destdir = autodir
|
||||
destdir = os.environ.get('INSTALL_DIR', None)
|
||||
if not destdir:
|
||||
destdir = defdir
|
||||
destdir = os.path.abspath(destdir)
|
||||
@ -640,6 +632,7 @@ def main(install_dir=None, bin_dir=None, share_dir=None, isolated=False):
|
||||
if not os.path.isdir(destdir):
|
||||
prints(destdir, 'exists and is not a directory. Choose a location like /opt or /usr/local')
|
||||
return 1
|
||||
print ('Installing to', destdir)
|
||||
|
||||
download_and_extract(destdir)
|
||||
|
||||
@ -650,26 +643,9 @@ def main(install_dir=None, bin_dir=None, share_dir=None, isolated=False):
|
||||
if share_dir is not None:
|
||||
pi.extend(['--sharedir', share_dir])
|
||||
subprocess.call(pi, shell=len(pi) == 1)
|
||||
if not automated:
|
||||
prints()
|
||||
prints(textwrap.dedent(
|
||||
'''
|
||||
You can automate future calibre installs by specifying the
|
||||
installation directory in the install command itself, like
|
||||
this:
|
||||
|
||||
sudo python -c "import sys; from subprocess import Popen, PIPE; \
|
||||
p = Popen('curl -sfLS https://github.com/kovidgoyal/calibre/raw/master/setup/linux-installer.py'.split(),\
|
||||
stdout=PIPE); raw = p.stdout.read(); p.wait() and sys.exit(p.returncode); exec(raw); main(install_dir='/opt'%s)"
|
||||
|
||||
Change /opt above to whatever directory you want calibre to be
|
||||
automatically installed to
|
||||
''' % (', isolated=True' if isolated else '')))
|
||||
prints()
|
||||
if isolated:
|
||||
prints('Run "%s/calibre" to start calibre' % destdir)
|
||||
else:
|
||||
prints('Run "calibre" to start calibre')
|
||||
else:
|
||||
prints('Run "%s/calibre" to start calibre' % destdir)
|
||||
return 0
|
||||
|
||||
try:
|
||||
@ -679,4 +655,5 @@ except NameError:
|
||||
from_file = False
|
||||
|
||||
if __name__ == '__main__' and from_file:
|
||||
# curl '-Lf#' https://github.com/kovidgoyal/calibre/raw/master/setup/linux-installer.py | sudo INSTALL_DIR=/opt python -c "import sys; exec(sys.stdin.read()); main()" # noqa
|
||||
main()
|
||||
|
Loading…
x
Reference in New Issue
Block a user