##// END OF EJS Templates
cli: convert 'gearbox install-iis' into 'kallithea-cli iis-install'
Thomas De Schampheleire -
r7334:9de61c5b default
parent child Browse files
Show More
@@ -59,7 +59,7 b' ISAPI handler'
59 59
60 60 The ISAPI handler can be generated using::
61 61
62 gearbox install-iis -c my.ini --virtualdir=/
62 kallithea-cli iis-install -c my.ini --virtualdir=/
63 63
64 64 This will generate a ``dispatch.py`` file in the current directory that contains
65 65 the necessary components to finalize an installation into IIS. Once this file
@@ -17,5 +17,6 b' from kallithea.bin.kallithea_cli_base im'
17 17
18 18 # import commands (they will add themselves to the 'cli' object)
19 19 import kallithea.bin.kallithea_cli_config
20 import kallithea.bin.kallithea_cli_iis
20 21 import kallithea.bin.kallithea_cli_ishell
21 22 import kallithea.bin.kallithea_cli_repo
@@ -11,21 +11,15 b''
11 11 #
12 12 # You should have received a copy of the GNU General Public License
13 13 # along with this program. If not, see <http://www.gnu.org/licenses/>.
14 """
15 kallithea.lib.paster_commands.install_iis
16 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
17
18 IIS installation tools for Kallithea
19 """
20
14 import click
15 import kallithea
16 import kallithea.bin.kallithea_cli_base as cli_base
21 17
22 18 import os
23
24 from kallithea.lib.paster_commands.common import BasePasterCommand
25
19 import sys
26 20
27 21 dispath_py_template = '''\
28 # Created by Kallithea 'gearbox install-iis'
22 # Created by Kallithea 'kallithea-cli iis-install'
29 23 import sys
30 24
31 25 if hasattr(sys, "isapidllhandle"):
@@ -60,38 +54,28 b" if __name__=='__main__':"
60 54 HandleCommandLine(params)
61 55 '''
62 56
63
64 class Command(BasePasterCommand):
65 '''Kallithea: Install into IIS using isapi-wsgi'''
57 @cli_base.register_command(config_file=True)
58 @click.option('--virtualdir', default='/',
59 help='The virtual folder to install into on IIS.')
60 def iis_install(virtualdir):
61 """Install into IIS using isapi-wsgi."""
66 62
67 requires_db_session = False
63 config_file_abs = kallithea.CONFIG['__file__']
68 64
69 def take_action(self, args):
70 config_file = os.path.abspath(args.config_file)
71 65 try:
72 66 import isapi_wsgi
73 67 except ImportError:
74 self.error('missing requirement: isapi-wsgi not installed')
68 sys.stderr.write('missing requirement: isapi-wsgi not installed\n')
69 sys.exit(1)
75 70
76 71 dispatchfile = os.path.join(os.getcwd(), 'dispatch.py')
77 print 'Writing %s' % dispatchfile
72 click.echo('Writing %s' % dispatchfile)
78 73 with open(dispatchfile, 'w') as f:
79 74 f.write(dispath_py_template % {
80 'inifile': config_file.replace('\\', '\\\\'),
81 'virtualdir': args.virtualdir,
75 'inifile': config_file_abs.replace('\\', '\\\\'),
76 'virtualdir': virtualdir,
82 77 })
83 78
84 print ('Run \'python "%s" install\' with administrative privileges '
79 click.echo('Run \'python "%s" install\' with administrative privileges '
85 80 'to generate the _dispatch.dll file and install it into the '
86 'default web site') % (dispatchfile,)
87
88 def get_parser(self, prog_name):
89 parser = super(Command, self).get_parser(prog_name)
90
91 parser.add_argument('--virtualdir',
92 action='store',
93 dest='virtualdir',
94 default='/',
95 help='The virtual folder to install into on IIS')
96
97 return parser
81 'default web site' % dispatchfile)
@@ -160,7 +160,6 b' setuptools.setup('
160 160
161 161 [gearbox.commands]
162 162 celeryd=kallithea.lib.paster_commands.celeryd:Command
163 install-iis=kallithea.lib.paster_commands.install_iis:Command
164 163 make-index=kallithea.lib.paster_commands.make_index:Command
165 164 make-rcext=kallithea.lib.paster_commands.make_rcextensions:Command
166 165 setup-db=kallithea.lib.paster_commands.setup_db:Command
General Comments 0
You need to be logged in to leave comments. Login now