49 lines
1.9 KiB
Python
49 lines
1.9 KiB
Python
import textwrap
|
|
|
|
from django.utils.translation import ugettext_lazy as _
|
|
|
|
from orchestra.apps.orchestration import ServiceController
|
|
|
|
from .. import settings
|
|
|
|
from . import WebAppServiceMixin
|
|
|
|
|
|
class WordPressBackend(WebAppServiceMixin, ServiceController):
|
|
verbose_name = _("Wordpress")
|
|
model = 'webapps.WebApp'
|
|
default_route_match = "webapp.type == 'wordpress'"
|
|
|
|
def save(self, webapp):
|
|
context = self.get_context(webapp)
|
|
self.create_webapp_dir(context)
|
|
self.append(textwrap.dedent("""\
|
|
# Check if directory is empty befor doing anything
|
|
if [[ ! $(ls -A %(app_path)s) ]]; then
|
|
wget http://wordpress.org/latest.tar.gz -O - --no-check-certificate \\
|
|
| tar -xzvf - -C %(app_path)s --strip-components=1
|
|
cp %(app_path)s/wp-config-sample.php %(app_path)s/wp-config.php
|
|
sed -i "s/database_name_here/%(db_name)s/" %(app_path)s/wp-config.php
|
|
sed -i "s/username_here/%(db_user)s/" %(app_path)s/wp-config.php
|
|
sed -i "s/password_here/%(db_pass)s/" %(app_path)s/wp-config.php
|
|
sed -i "s/localhost/%(db_host)s/" %(app_path)s/wp-config.php
|
|
mkdir %(app_path)s/wp-content/uploads
|
|
chmod 750 %(app_path)s/wp-content/uploads
|
|
chown -R %(user)s:%(group)s %(app_path)s
|
|
fi""" % context
|
|
))
|
|
|
|
def delete(self, webapp):
|
|
context = self.get_context(webapp)
|
|
self.delete_webapp_dir(context)
|
|
|
|
def get_context(self, webapp):
|
|
context = super(WordPressBackend, self).get_context(webapp)
|
|
context.update({
|
|
'db_name': webapp.data['db_name'],
|
|
'db_user': webapp.data['db_user'],
|
|
'db_pass': webapp.data['db_pass'],
|
|
'db_host': settings.WEBAPPS_DEFAULT_MYSQL_DATABASE_HOST,
|
|
})
|
|
return context
|