Browse Source

ee wordpress plugin install added

bugfixes
harshadyeola 10 years ago
parent
commit
04583f1697
  1. 13
      ee/cli/plugins/site.py
  2. 77
      ee/cli/plugins/site_functions.py
  3. 8
      ee/core/fileutils.py
  4. 13
      ee/core/services.py

13
ee/cli/plugins/site.py

@ -4,7 +4,7 @@ from cement.core import handler, hook
from ee.core.variables import EEVariables from ee.core.variables import EEVariables
from ee.core.domainvalidate import validate_domain from ee.core.domainvalidate import validate_domain
from ee.core.fileutils import EEFileUtils from ee.core.fileutils import EEFileUtils
from ee.cli.plugins.site_functions import setup_domain, setup_database from ee.cli.plugins.site_functions import *
import sys import sys
import os import os
@ -131,8 +131,7 @@ class EESiteCreateController(CementBaseController):
data = dict(site_name=ee_domain_name, data = dict(site_name=ee_domain_name,
static=True, basic=False, wp=False, w3tc=False, static=True, basic=False, wp=False, w3tc=False,
wpfc=False, wpsc=False, multisite=False, wpfc=False, wpsc=False, multisite=False,
wpsubdir=False, webroot=ee_site_webroot, wpsubdir=False, webroot=ee_site_webroot)
ee_db_name='', ee_db_user='', ee_db_pass='')
if (self.app.pargs.php and not (self.app.pargs.html or if (self.app.pargs.php and not (self.app.pargs.html or
self.app.pargs.mysql or self.app.pargs.wp or self.app.pargs.w3tc self.app.pargs.mysql or self.app.pargs.wp or self.app.pargs.w3tc
@ -141,8 +140,7 @@ class EESiteCreateController(CementBaseController):
data = dict(site_name=ee_domain_name, data = dict(site_name=ee_domain_name,
static=False, basic=True, wp=False, w3tc=False, static=False, basic=True, wp=False, w3tc=False,
wpfc=False, wpsc=False, multisite=False, wpfc=False, wpsc=False, multisite=False,
wpsubdir=False, webroot=ee_site_webroot, wpsubdir=False, webroot=ee_site_webroot)
ee_db_name='', ee_db_user='', ee_db_pass='')
if (self.app.pargs.mysql and not (self.app.pargs.html or if (self.app.pargs.mysql and not (self.app.pargs.html or
self.app.pargs.php or self.app.pargs.wp or self.app.pargs.w3tc self.app.pargs.php or self.app.pargs.wp or self.app.pargs.w3tc
@ -252,7 +250,10 @@ class EESiteCreateController(CementBaseController):
ee_db_name='', ee_db_user='', ee_db_pass='') ee_db_name='', ee_db_user='', ee_db_pass='')
setup_domain(self, data) setup_domain(self, data)
setup_database(self, data) if 'ee_db_name' in data.keys():
data = setup_database(self, data)
if data['wp']:
setup_wordpress(self, data)
class EESiteUpdateController(CementBaseController): class EESiteUpdateController(CementBaseController):

77
ee/cli/plugins/site_functions.py

@ -63,7 +63,6 @@ def setup_database(self, data):
prompt_dbname = self.app.config.get('mysql', 'db-name') prompt_dbname = self.app.config.get('mysql', 'db-name')
prompt_dbuser = self.app.config.get('mysql', 'db-user') prompt_dbuser = self.app.config.get('mysql', 'db-user')
ee_mysql_host = self.app.config.get('mysql', 'grant-host') ee_mysql_host = self.app.config.get('mysql', 'grant-host')
print(ee_random)
if prompt_dbname == 'True': if prompt_dbname == 'True':
try: try:
@ -111,9 +110,13 @@ def setup_database(self, data):
EEMysql.execute(self, EEMysql.execute(self,
"grant all privileges on \'{0}\'.* to \'{1}\'@\'{2}\'" "grant all privileges on \'{0}\'.* to \'{1}\'@\'{2}\'"
.format(ee_db_name, ee_db_username, ee_db_password)) .format(ee_db_name, ee_db_username, ee_db_password))
data['ee_db_name'] = ee_db_name
data['ee_db_user'] = ee_db_username
data['ee_db_pass'] = ee_db_password
return data
def setup_wordpress(data): def setup_wordpress(self, data):
ee_domain_name = data['site_name'] ee_domain_name = data['site_name']
ee_site_webroot = data['webroot'] ee_site_webroot = data['webroot']
prompt_wpprefix = self.app.config.get('wordpress', 'prefix') prompt_wpprefix = self.app.config.get('wordpress', 'prefix')
@ -156,11 +159,22 @@ def setup_wordpress(data):
EEFileUtils.searchreplace('{0}/wp-config.php'.format(ee_site_webroot), EEFileUtils.searchreplace('{0}/wp-config.php'.format(ee_site_webroot),
'wp_', '')''' 'wp_', '')'''
EEShellExec.cmd_exec(self, "wp --allow-root core config" EEFileUtils.chdir(self, '{0}/htdocs/'.format(ee_site_webroot))
"--dbname={0} --dbprefix={1}" if not data['multisite']:
.format(ee_db_name, ee_wp_prefix) EEShellExec.cmd_exec(self, "wp --allow-root core config"
"--dbuser={2} --dbprefix={3}" "--dbname={0} --dbprefix={1} --dbuser={2}"
.format(ee_db_user, ee_db_password)) .format(ee_db_name, ee_wp_prefix, ee_db_user)
+ "--dbpass={0}".format(ee_db_password))
else:
EEShellExec.cmd_exec(self, "wp --allow-root core config"
"--dbname={0} --dbprefix={1}"
.format(ee_db_name, ee_wp_prefix)
+ "--dbuser={0} --dbpass={1} --extra-php<<PHP"
+ "define('WP_ALLOW_MULTISITE', true);"
+ "define('WPMU_ACCEL_REDIRECT', true);"
+ "PHP"
.format(ee_db_user, ee_db_password))
EEFileUtils.mvfile('./wp-config.php', '../') EEFileUtils.mvfile('./wp-config.php', '../')
@ -182,12 +196,51 @@ def setup_wordpress(data):
ee_wp_email = input('Enter WordPress email: ') ee_wp_email = input('Enter WordPress email: ')
print("Setting up WordPress, please wait...") print("Setting up WordPress, please wait...")
EEShellExec.cmd_exec(self, "wp --allow-root core install"
"--url=www.{0} --title=www.{0} --admin_name={1}" if not data['multisite']:
.format(ee_domain_name, ee_wp_user) EEShellExec.cmd_exec(self, "wp --allow-root core install"
"--admin_password={0} --admin_email={1}" "--url=www.{0} --title=www.{0} --admin_name={1}"
.format(ee_wp_pass, ee_wp_email)) .format(ee_domain_name, ee_wp_user)
+ "--admin_password={0} --admin_email={1}"
.format(ee_wp_pass, ee_wp_email))
else:
EEShellExec.cmd_exec(self, "wp --allow-root core multisite-install"
"--url=www.{0} --title=www.{0} --admin_name={1}"
.format(ee_domain_name, ee_wp_user)
+ "--admin_password={0} --admin_email={1} "
"{subdomains}"
.format(ee_wp_pass, ee_wp_email,
subdomains='--subdomains'
if not data['wpsubdir'] else ''))
print("Updating WordPress permalink, please wait...") print("Updating WordPress permalink, please wait...")
EEShellExec.cmd_exec("wp rewrite structure --allow-root" EEShellExec.cmd_exec("wp rewrite structure --allow-root"
"/%year%/%monthnum%/%day%/%postname%/") "/%year%/%monthnum%/%day%/%postname%/")
"""Install nginx-helper plugin """
install_wp_plugin(self, 'nginx-helper', data)
"""Install Wp Super Cache"""
if data['wpsc']:
install_wp_plugin(self, 'wp-super-cache', data)
"""Install W3 Total Cache"""
if data['w3tc'] or data['wpfc']:
install_wp_plugin(self, 'w3-total-cache', data)
def setup_wordpress_network(self, ee_www_domain, ee_site_webroot,
subdomain=False):
EEFileUtils.chdir(self, '{0}/htdocs/'.format(ee_site_webroot))
EEShellExec.cmd_exec(self, 'wp --allow-root core multisite-convert'
'--title={0}')
def install_wp_plugin(self, plugin_name, data):
ee_site_webroot = ee_site_webroot = data['webroot']
EEFileUtils.chdir(self, '{0}/htdocs/'.format(ee_site_webroot))
EEShellExec.cmd_exec(self, "wp plugin --allow-root install {0}"
.format(plugin_name))
EEShellExec.cmd_exec(self, "wp plugin --allow-root activate {0} {na}"
.format(na='--network' if data['multisite'] else ''))

8
ee/core/fileutils.py

@ -71,3 +71,11 @@ class EEFileUtils():
self.app.log.error('Unable to move file {err}' self.app.log.error('Unable to move file {err}'
.format(err=str(e.reason))) .format(err=str(e.reason)))
sys.exit(1) sys.exit(1)
def chdir(self, path):
try:
os.chdir(path)
except OSError as e:
self.app.log.error('Unable to Change Directory {err}'
.format(err=e.strerror))
sys.exit(1)

13
ee/core/services.py

@ -43,6 +43,19 @@ class EEService():
except OSError as e: except OSError as e:
self.app.log.error("Execution failed:", e) self.app.log.error("Execution failed:", e)
def reload_service(self, service_name):
try:
retcode = subprocess.getstatusoutput('service {0} reload'
.format(service_name))
if retcode[0] == 0:
self.app.log.info("reload : {0}".format(service_name))
return True
else:
return False
except OSError as e:
self.app.log.error("Execution failed:", e)
return False
def get_service_status(self, service_name): def get_service_status(self, service_name):
try: try:
is_exist = subprocess.getstatusoutput('which {0}' is_exist = subprocess.getstatusoutput('which {0}'

Loading…
Cancel
Save