[PATCH 11 of 17 v3] cli: convert 'gearbox install-iis' into 'kallithea-cli iis-install'
Thomas De Schampheleire
patrickdepinguin at gmail.com
Thu Oct 18 20:49:34 UTC 2018
# HG changeset patch
# User Thomas De Schampheleire <thomas.de_schampheleire at nokia.com>
# Date 1539716904 -7200
# Tue Oct 16 21:08:24 2018 +0200
# Node ID 714cacbf3266d092c7cce3c20e83ae6525d32f9a
# Parent 3a3f3ae5620d39f43894afd82ec1a6701e25a2a1
cli: convert 'gearbox install-iis' into 'kallithea-cli iis-install'
diff --git a/docs/installation_iis.rst b/docs/installation_iis.rst
--- a/docs/installation_iis.rst
+++ b/docs/installation_iis.rst
@@ -59,7 +59,7 @@ ISAPI handler
The ISAPI handler can be generated using::
- gearbox install-iis -c my.ini --virtualdir=/
+ kallithea-cli iis-install --virtualdir=/ my.ini
This will generate a ``dispatch.py`` file in the current directory that contains
the necessary components to finalize an installation into IIS. Once this file
diff --git a/kallithea/bin/kallithea_cli.py b/kallithea/bin/kallithea_cli.py
--- a/kallithea/bin/kallithea_cli.py
+++ b/kallithea/bin/kallithea_cli.py
@@ -19,5 +19,6 @@ from kallithea.bin.kallithea_cli_base im
import kallithea.bin.kallithea_cli_cache
import kallithea.bin.kallithea_cli_celery
import kallithea.bin.kallithea_cli_config
+import kallithea.bin.kallithea_cli_iis
import kallithea.bin.kallithea_cli_ishell
import kallithea.bin.kallithea_cli_repo
diff --git a/kallithea/lib/paster_commands/install_iis.py b/kallithea/bin/kallithea_cli_iis.py
rename from kallithea/lib/paster_commands/install_iis.py
rename to kallithea/bin/kallithea_cli_iis.py
--- a/kallithea/lib/paster_commands/install_iis.py
+++ b/kallithea/bin/kallithea_cli_iis.py
@@ -11,21 +11,15 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-kallithea.lib.paster_commands.install_iis
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-IIS installation tools for Kallithea
-"""
-
+import click
+from kallithea.bin.kallithea_cli_base import cli
+import kallithea.bin.kallithea_cli_util as cli_util
import os
-
-from kallithea.lib.paster_commands.common import BasePasterCommand
-
+import sys
dispath_py_template = '''\
-# Created by Kallithea 'gearbox install-iis'
+# Created by Kallithea 'kallithea-cli iis-install'
import sys
if hasattr(sys, "isapidllhandle"):
@@ -60,38 +54,29 @@ if __name__=='__main__':
HandleCommandLine(params)
'''
-
-class Command(BasePasterCommand):
- '''Kallithea: Install into IIS using isapi-wsgi'''
-
- requires_db_session = False
+ at cli.command()
+ at cli_util.auto_setup_app(config_only=True)
+ at click.option('--virtualdir', default='/',
+ help='The virtual folder to install into on IIS.')
+def iis_install(config_file, virtualdir):
+ """Install into IIS using isapi-wsgi."""
- def take_action(self, args):
- config_file = os.path.abspath(args.config_file)
- try:
- import isapi_wsgi
- except ImportError:
- self.error('missing requirement: isapi-wsgi not installed')
+ config_file_abs = os.path.abspath(config_file)
- dispatchfile = os.path.join(os.getcwd(), 'dispatch.py')
- print 'Writing %s' % dispatchfile
- with open(dispatchfile, 'w') as f:
- f.write(dispath_py_template % {
- 'inifile': config_file.replace('\\', '\\\\'),
- 'virtualdir': args.virtualdir,
- })
+ try:
+ import isapi_wsgi
+ except ImportError:
+ sys.stderr.write('missing requirement: isapi-wsgi not installed\n')
+ sys.exit(1)
- print ('Run \'python "%s" install\' with administrative privileges '
- 'to generate the _dispatch.dll file and install it into the '
- 'default web site') % (dispatchfile,)
-
- def get_parser(self, prog_name):
- parser = super(Command, self).get_parser(prog_name)
+ dispatchfile = os.path.join(os.getcwd(), 'dispatch.py')
+ click.echo('Writing %s' % dispatchfile)
+ with open(dispatchfile, 'w') as f:
+ f.write(dispath_py_template % {
+ 'inifile': config_file_abs.replace('\\', '\\\\'),
+ 'virtualdir': virtualdir,
+ })
- parser.add_argument('--virtualdir',
- action='store',
- dest='virtualdir',
- default='/',
- help='The virtual folder to install into on IIS')
-
- return parser
+ click.echo('Run \'python "%s" install\' with administrative privileges '
+ 'to generate the _dispatch.dll file and install it into the '
+ 'default web site' % dispatchfile)
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -158,7 +158,6 @@ setuptools.setup(
main = kallithea.config.middleware:make_app
[gearbox.commands]
- install-iis=kallithea.lib.paster_commands.install_iis:Command
make-index=kallithea.lib.paster_commands.make_index:Command
make-rcext=kallithea.lib.paster_commands.make_rcextensions:Command
setup-db=kallithea.lib.paster_commands.setup_db:Command
More information about the kallithea-general
mailing list