|
|
|
"""EasyEngine site controller."""
|
|
|
|
from cement.core.controller import CementBaseController, expose
|
|
|
|
from cement.core import handler, hook
|
|
|
|
import sys
|
|
|
|
|
|
|
|
|
|
|
|
def ee_site_hook(app):
|
|
|
|
# do something with the ``app`` object here.
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class EESiteController(CementBaseController):
|
|
|
|
class Meta:
|
|
|
|
label = 'site'
|
|
|
|
stacked_on = 'base'
|
|
|
|
stacked_type = 'nested'
|
|
|
|
description = ('site command manages website configuration'
|
|
|
|
'with the help of the following subcommands')
|
|
|
|
arguments = [
|
|
|
|
(['site_name'],
|
|
|
|
dict(help='website name')),
|
|
|
|
]
|
|
|
|
|
|
|
|
@expose(hide=True)
|
|
|
|
def default(self):
|
|
|
|
# TODO Default action for ee site command
|
|
|
|
print("Inside EESiteController.default().")
|
|
|
|
|
|
|
|
@expose(help="delete site example.com")
|
|
|
|
def delete(self):
|
|
|
|
# TODO Write code for ee site delete command here
|
|
|
|
print("Inside EESiteController.delete().")
|
|
|
|
|
|
|
|
@expose(help="enable site example.com")
|
|
|
|
def enable(self):
|
|
|
|
# TODO Write code for ee site enable command here
|
|
|
|
print("Inside EESiteController.enable().")
|
|
|
|
|
|
|
|
@expose(help="disable site example.com")
|
|
|
|
def disable(self):
|
|
|
|
# TODO Write code for ee site disable command here
|
|
|
|
print("Inside EESiteController.disable().")
|
|
|
|
|
|
|
|
@expose(help="get example.com information")
|
|
|
|
def info(self):
|
|
|
|
# TODO Write code for ee site info command here
|
|
|
|
print("Inside EESiteController.info().")
|
|
|
|
|
|
|
|
@expose(help="Monitor example.com logs")
|
|
|
|
def log(self):
|
|
|
|
# TODO Write code for ee site log command here
|
|
|
|
print("Inside EESiteController.log().")
|
|
|
|
|
|
|
|
@expose(help="Edit example.com's nginx configuration")
|
|
|
|
def edit(self):
|
|
|
|
# TODO Write code for ee site edit command here
|
|
|
|
print("Inside EESiteController.edit().")
|
|
|
|
|
|
|
|
@expose(help="Display example.com's nginx configuration")
|
|
|
|
def show(self):
|
|
|
|
# TODO Write code for ee site edit command here
|
|
|
|
print("Inside EESiteController.show().")
|
|
|
|
|
|
|
|
@expose(help="list sites currently available")
|
|
|
|
def list(self):
|
|
|
|
# TODO Write code for ee site list command here
|
|
|
|
print("Inside EESiteController.list().")
|
|
|
|
|
|
|
|
@expose(help="change to example.com's webroot")
|
|
|
|
def cd(self):
|
|
|
|
# TODO Write code for ee site cd here
|
|
|
|
print("Inside EESiteController.cd().")
|
|
|
|
|
|
|
|
|
|
|
|
class EESiteCreateController(CementBaseController):
|
|
|
|
class Meta:
|
|
|
|
label = 'create'
|
|
|
|
stacked_on = 'site'
|
|
|
|
stacked_type = 'nested'
|
|
|
|
description = 'create command manages website configuration with the \
|
|
|
|
help of the following subcommands'
|
|
|
|
arguments = [
|
|
|
|
(['site_name'],
|
|
|
|
dict(help='the notorious foo option')),
|
|
|
|
(['--html'],
|
|
|
|
dict(help="html site", action='store_true')),
|
|
|
|
(['--php'],
|
|
|
|
dict(help="php site", action='store_true')),
|
|
|
|
(['--mysql'],
|
|
|
|
dict(help="mysql site", action='store_true')),
|
|
|
|
(['--wp'],
|
|
|
|
dict(help="wordpress site", action='store_true')),
|
|
|
|
(['--wpsubdir'],
|
|
|
|
dict(help="wpsubdir site", action='store_true')),
|
|
|
|
(['--wpsubdomain'],
|
|
|
|
dict(help="wpsubdomain site", action='store_true')),
|
|
|
|
(['--w3tc'],
|
|
|
|
dict(help="w3tc", action='store_true')),
|
|
|
|
(['--wpfc'],
|
|
|
|
dict(help="wpfc", action='store_true')),
|
|
|
|
(['--wpsc'],
|
|
|
|
dict(help="wpsc", action='store_true')),
|
|
|
|
]
|
|
|
|
|
|
|
|
@expose(hide=True)
|
|
|
|
def default(self):
|
|
|
|
# TODO Default action for ee site command
|
|
|
|
# data = dict(foo='EESiteCreateController.default().')
|
|
|
|
# self.app.render((data), 'default.mustache')
|
|
|
|
if self.app.pargs.html:
|
|
|
|
data = dict(site_name=self.app.pargs.site_name,
|
|
|
|
static=True, basic=False, wp=False, w3tc=False,
|
|
|
|
wpfc=False, wpsc=False, multisite=False,
|
|
|
|
wpsubdir=False)
|
|
|
|
|
|
|
|
if self.app.pargs.php:
|
|
|
|
data = dict(site_name=self.app.pargs.site_name,
|
|
|
|
static=False, basic=True, wp=False, w3tc=False,
|
|
|
|
wpfc=False, wpsc=False, multisite=False,
|
|
|
|
wpsubdir=False)
|
|
|
|
|
|
|
|
if self.app.pargs.mysql:
|
|
|
|
data = dict(site_name=self.app.pargs.site_name,
|
|
|
|
static=False, basic=True, wp=False, w3tc=False,
|
|
|
|
wpfc=False, wpsc=False, multisite=False,
|
|
|
|
wpsubdir=False)
|
|
|
|
|
|
|
|
if (self.app.pargs.wp or self.app.pargs.w3tc or self.app.pargs.wpfc
|
|
|
|
or self.app.pargs.wpsc):
|
|
|
|
if self.app.pargs.wp:
|
|
|
|
data = dict(site_name=self.app.pargs.site_name,
|
|
|
|
static=False, basic=True, wp=True, w3tc=False,
|
|
|
|
wpfc=False, wpsc=False, multisite=False,
|
|
|
|
wpsubdir=False)
|
|
|
|
if self.app.pargs.w3tc:
|
|
|
|
data = dict(site_name=self.app.pargs.site_name,
|
|
|
|
static=False, basic=False, wp=True, w3tc=True,
|
|
|
|
wpfc=False, wpsc=False, multisite=False,
|
|
|
|
wpsubdir=False)
|
|
|
|
if self.app.pargs.wpfc:
|
|
|
|
data = dict(site_name=self.app.pargs.site_name,
|
|
|
|
static=False, basic=False, wp=True, w3tc=False,
|
|
|
|
wpfc=True, wpsc=False, multisite=False,
|
|
|
|
wpsubdir=False)
|
|
|
|
if self.app.pargs.wpsc:
|
|
|
|
data = dict(site_name=self.app.pargs.site_name,
|
|
|
|
static=False, basic=False, wp=True, w3tc=False,
|
|
|
|
wpfc=False, wpsc=True, multisite=False,
|
|
|
|
wpsubdir=False)
|
|
|
|
|
|
|
|
if self.app.pargs.wpsubdir:
|
|
|
|
data = dict(site_name=self.app.pargs.site_name,
|
|
|
|
static=False, basic=True, wp=True, w3tc=False,
|
|
|
|
wpfc=False, wpsc=False, multisite=True,
|
|
|
|
wpsubdir=True)
|
|
|
|
|
|
|
|
if self.app.pargs.wpsubdomain:
|
|
|
|
data = dict(site_name=self.app.pargs.site_name,
|
|
|
|
static=False, basic=True, wp=True, w3tc=False,
|
|
|
|
wpfc=False, wpsc=False, multisite=True,
|
|
|
|
wpsubdir=False)
|
|
|
|
self.app.render((data), 'virtualconf.mustache')
|
|
|
|
|
|
|
|
|
|
|
|
class EESiteUpdateController(CementBaseController):
|
|
|
|
class Meta:
|
|
|
|
label = 'update'
|
|
|
|
stacked_on = 'site'
|
|
|
|
stacked_type = 'nested'
|
|
|
|
description = 'update command manages website configuration with the \
|
|
|
|
help of the following subcommands'
|
|
|
|
arguments = [
|
|
|
|
(['site_name'],
|
|
|
|
dict(help='website name')),
|
|
|
|
(['--html'],
|
|
|
|
dict(help="html site", action='store_true')),
|
|
|
|
(['--php'],
|
|
|
|
dict(help="php site", action='store_true')),
|
|
|
|
(['--mysql'],
|
|
|
|
dict(help="mysql site", action='store_true')),
|
|
|
|
(['--wp'],
|
|
|
|
dict(help="wordpress site", action='store_true')),
|
|
|
|
(['--wpsubdir'],
|
|
|
|
dict(help="wpsubdir site", action='store_true')),
|
|
|
|
(['--wpsubdomain'],
|
|
|
|
dict(help="wpsubdomain site", action='store_true')),
|
|
|
|
(['--w3tc'],
|
|
|
|
dict(help="w3tc", action='store_true')),
|
|
|
|
(['--wpfc'],
|
|
|
|
dict(help="wpfc", action='store_true')),
|
|
|
|
(['--wpsc'],
|
|
|
|
dict(help="wpsc", action='store_true')),
|
|
|
|
]
|
|
|
|
|
|
|
|
@expose(help="update example.com")
|
|
|
|
def default(self):
|
|
|
|
# TODO Write code for ee site update here
|
|
|
|
print("Inside EESiteUpdateController.default().")
|
|
|
|
|
|
|
|
# site command Options and subcommand calls and definations to
|
|
|
|
# mention here
|
|
|
|
|
|
|
|
# If using an output handler such as 'mustache', you could also
|
|
|
|
# render a data dictionary using a template. For example:
|
|
|
|
#
|
|
|
|
# data = dict(foo='bar')
|
|
|
|
# self.app.render(data, 'default.mustache')
|
|
|
|
#
|
|
|
|
#
|
|
|
|
# The 'default.mustache' file would be loaded from
|
|
|
|
# ``ee.cli.templates``, or ``/var/lib/ee/templates/``.
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
|
|
def load(app):
|
|
|
|
# register the plugin class.. this only happens if the plugin is enabled
|
|
|
|
handler.register(EESiteController)
|
|
|
|
handler.register(EESiteCreateController)
|
|
|
|
handler.register(EESiteUpdateController)
|
|
|
|
|
|
|
|
# register a hook (function) to run after arguments are parsed.
|
|
|
|
hook.register('post_argument_parsing', ee_site_hook)
|