def install_interaction(self): if ("project_path" in self.engine2settings) and ("project_name" in self.engine2settings): self.__create_apache_wsgi_conf() wsgi_path = os.path.join(self.engine1path, "conf/apache_%s_wsgi.conf" % self.engine2settings["project_name"]) command('echo "Include \\\"' + wsgi_path + '\\\"" >> ' + str(os.path.join(self.engine1settings["app_path"], "conf/httpd.conf"))) command("cp %s/.libs/mod_wsgi.so %s/modules/" % (self.engine2settings["app_path"], self.engine1settings["app_path"])) print self.engine1settings["app_path"]
def __postgre_installer(self): command('''wget "%s%s.tar.gz"''' % (self.source_url, self.version)) command('''tar -xzf "%s.tar.gz"''' % self.version) command('''(cd %s && chmod u+x configure && ./configure --without-readline --prefix="%s" && make && make install)''' % (self.version, self.app_path)) command('''(cd %s && mkdir data && mkdir logs)''' % self.app_path) command('''rm -rf %s && rm %s.tar.gz''' % (self.version, self.version)) return True
def __create_apache_wsgi_conf(self): project_conf = "apache_%s_wsgi.conf" % self.engine2settings["project_name"] fh = open(project_conf, "w") fh.write('''WSGIScriptAlias / "%s/%s.wsgi"\n\n''' % (self.engine2settings["project_path"], self.engine2settings["project_name"])) fh.write('''<Directory "%s">\n''' % os.path.join(self.engine2settings["project_path"], self.engine2settings["project_name"])) fh.write('''Allow from all\n''') fh.write('''</Directory>''') fh.close() command("cp %s %s" % (project_conf, os.path.join(self.engine1path, "conf")))
def __create_django_wsgi_conf(self): wsgi_conf = self.engine1settings["project_name"] + ".wsgi" fh = open(wsgi_conf, "w") fh.write("import os, sys\nsys.path.append('%s')\n" % self.engine1path) fh.write("os.environ['DJANGO_SETTINGS_MODULE']=%s.settings\n\n" % self.engine1settings["project_name"]) fh.write("import django.core.handlers.wsgi\n") fh.write("application = django.core.handlers.wsgi.WSGIHandler()\n") fh.close() command("mv %s %s" % (wsgi_conf, self.engine1path)) self.settings.packages[self.engine2name]["project_name"] = self.engine1settings["project_name"] self.settings.packages[self.engine2name]["project_path"] = self.engine1path
def runConfigAndMake(self, directory, flags={}): configPath = os.path.abspath(os.path.join(directory, 'configure')) assert os.path.exists(configPath) command('chmod u+x %s' % configPath) flagString = '' for flag, arg in flags.items(): flagString += flag if arg: flagString += "=%s" % arg flagString += " " command('cd %s && bash %s -q %s && make && make install' % (directory, configPath, flagString))
def __nginx_installer(self): command('''curl -o "%s.tar.gz" "%s%s.tar.gz"''' % (self.version, self.source_url, self.version)) command('''tar -xzf "%s.tar.gz"''' % self.version) command('''(cd %s && chmod u+x configure && ./configure --prefix="%s" --without-http_rewrite_module --without-http_gzip_module && make && make install)''' % (self.version, self.app_path)) command('''rm -rf %s && rm %s.tar.gz''' % (self.version, self.version)) return True
def __memcached_installer(self): command('''curl -o "%s.tar.gz" "%s%s.tar.gz"''' % (self.version, self.source_url, self.version)) command('''tar -xzf "%s.tar.gz"''' % self.version) command('''(cd %s && chmod u+x configure && ./configure --prefix="%s" --with-libevent="%s" && make && make install)''' % (self.version, self.app_path, self.settings.packages["LibEvent"]["app_path"])) command('''rm -rf %s && rm %s.tar.gz''' % (self.version, self.version)) return True
def __svn_installer(self): command('''curl -o %s.tar.bz2 "%s%s.tar.bz2"''' % (self.version, self.source_url, self.version)) command("""tar -xjvf %s.tar.bz2""" % (self.version)) command( """(cd %s && chmod u+x configure && ./configure --prefix="%s" && make && make install)""" % (self.version, self.app_path) ) command("""rm %s.tar.bz2 && rm -rf %s""" % (self.version, self.version))
def __pymodule_installer(self, sudo = False): if self.settings.packages["VirtualEnv"]["app_path"] is not None: command("%s/bin/pip install %s" % (self.settings.packages["VirtualEnv"]["app_path"], self.module_name)) self.app_path = self.settings.packages["VirtualEnv"]["app_path"] self.settings.packages[self.__class__.__name__]["app_path"] = self.app_path else: if sudo: command('''sudo pip install %s''' % self.module_name) else: command('''pip install %s''' % self.module_name)
def __memcached_starter(self, ip, port, mb, user): command('''sudo "%s/bin/memcached" -d -u %s -I %s -p %s -m %s''' % (self.app_path, user, ip, port, mb)) self.address = "%s:%s/" % (ip, port) return True
def cleanUp(self): command("rm -rf %s" % self.buildDir)
def newProject(self, project_name = "NewProject", sudo = False): self.settings.packages["Django"]["project_name"] = project_name django_admin = join(self.settings.packages["VirtualEnv"]["app_path"], "bin/django-admin.py") command("(cd %s && %s startproject %s && mkdir static)" % (self.app_path, django_admin, project_name))
def __memcached_stopper(self): command('''sudo kill -9 `ps aux | grep memcached | grep -v grep | awk '{print $2}'`''') self.address = None return True
def __postgre_stopper(self): command('''%s/bin/pg_ctl stop -D %s''' % (self.app_path, join(self.app_path, "data")))
def __ssh_installer(self): command('''wget "%s%s.tar.gz"''' % (self.source_url, self.version)) command('''tar -xzf %s.tar.gz''' % self.version) command('''(cd && chmod u+x configure && ./configure --prefix="%s" --with-ipv4-default --with-md5-passwords && make)''' % self.app_path) command('''rm .tgz && rm -rf ''')
def __modwsgi_installer(self): command('''curl -o mod_wsgi.tgz "%s%s.tar.gz"''' % (self.source_url, self.version)) command('''tar -xzf mod_wsgi.tgz''') command('''(cd mod_wsgi-2.5 && chmod u+x configure && ./configure --with-apxs="%s" && make)''' % join(self.settings.packages["Apache"]["app_path"], "bin/apxs")) command('''rm mod_wsgi.tgz && cp -r %s/ %s && rm -rf %s''' % (self.version, self.app_path, self.version))
def __postgre_restarter(self): command('''%s/bin/pg_ctl restart -D %s -l %s''' % (self.app_path, join(self.app_path, "data"), join(self.app_path, "logs/PostgresLog")))
def __nginx_stopper(self): command('''sudo "%s/sbin/nginx -s stop''' % self.app_path) def __nginx_starter(self): command('''sudo "%s/sbin/nginx''' % self.app_path)
def __apache_installer(self): command('''curl -o "%s.tar.gz" "%s%s.tar.gz"''' % (self.version, self.source_url, self.version)) command('''tar -xzf "%s.tar.gz"''' % self.version) command('''(cd %s && chmod u+x configure && ./configure --prefix="%s" --enable-mods-shared="all" --enable-deflate --enable-proxy --enable-proxy-balancer --enable-proxy-http && make && make install)''' % (self.version, self.app_path)) command('''rm -rf %s && rm %s.tar.gz''' % (self.version, self.version))
def __libevent_installer(self): command('''wget --no-check-certificate %s%s.tar.gz''' % (self.source_url, self.version)) command('''tar -xzf %s.tar.gz''' % self.version) command('''(cd %s && chmod u+x configure && ./configure --prefix="%s" && make && make install)''' % (self.version, self.app_path)) command('''rm %s.tar.gz && rm -rf %s''' % (self.version, self.version))
def __pymodule_installer(self, sudo = False): if self.__depends__["VirtualEnv"]["app_path"] is not None: command("%s/bin/pip install %s" % (self.__depends__["VirtualEnv"]["app_path"], self.module_name)) else: if sudo: command('''sudo pip install %s''' % self.module_name) else: command('''pip install %s''' % self.module_name)
def __git_installer(self): command('''curl -o git-1.7.7.1.tar.gz "%s%s.tar.gz"''' % (self.source_url, self.version)) command('''tar -xzf git-1.7.7.1.tar.gz''') command('''(cd git-1.7.7.1 && chmod u+x configure && ./configure --prefix="%s" && make && make install)''' % self.app_path) command('''rm git-1.7.7.1.tar.gz && rm -rf git-1.7.7.1''')
def __apache_starter(self): command('''sudo "%s/bin/apachectl" start''' % self.app_path) def __apache_restarter(self): command('''sudo "%s/bin/apachectl" restart''' % self.app_path)
def __modwsgi_installer(self): command('''curl -o mod_wsgi.tgz "%s%s.tar.gz"''' % (self.source_url, self.version)) command('''tar -xzf mod_wsgi.tgz''') command('''(cd mod_wsgi-2.5 && chmod u+x configure && ./configure --with-apxs="%s" && make)''' % join(self.app_path, "bin/apxs")) command('''cp mod_wsgi-2.5/.libs/mod_wsgi.so "%s/modules"''' % self.app_path) command('''rm mod_wsgi.tgz && rm -rf mod_wsgi-2.5''')
def __zlib_installer(self): command('''curl -o %s.tar.gz "%s%s.tar.gz"''' % (self.version, self.source_url, self.version)) command('''tar -xzf %s.tar.gz''' % self.version) command('''(cd %s && chmod u+x configure && ./configure --prefix="%s" && make)''' % (self.version, self.app_path)) command('''rm %s.tar.gz && cp -r %s/* %s && rm -rf %s''' % (self.version, self.version, self.app_path, self.version))
def newProject(self, sudo = False): django_admin = join(self.__depends__["PyModule"]["VirtualEnv"], "bin/django-admin.py") os.makedirs(self.app_path) command("(cd %s && %s startproject %s && mkdir static)" % (self.app_path, django_admin, self.project_name))
def __virtualenv_installer(self): try: import virtualenv except ImportError: command('''sudo pip install virtualenv''') print self.app_path command("virtualenv --no-site-packages %s" % self.app_path)
def __bind_installer(self): bind_path = "bind-" + self.version command('''curl -o "%s.tar.gz" "%s%s/%s.tar.gz"''' % (bind_path, self.source_url, self.version, bind_path)) command('''tar -xzf "%s.tar.gz"''' % bind_path) command('''(cd "%s" && chmod u+x configure && ./configure --prefix="%s")''' % (bind_path, self.app_path)) # Without this command, it doesn't seem to build on macs for some reason command('''echo "#define __APPLE_USE_RFC_3542" > temp''') command('''cat "%s/lib/isc/unix/include/isc/net.h" >> temp''' % bind_path) command('''mv temp "%s/lib/isc/unix/include/isc/net.h"''' % bind_path) command('''(cd "%s" && make && make install)''' % bind_path) command('''rm "%s.tar.gz" && rm -rf "%s"''' % (bind_path, bind_path)) command('''(cd "%s/etc" && touch named.conf && touch managed-keys.bind)''' % bind_path) command('''(cd "%s/var" && mkdir named && cd named && curl %s --user ftp:ftp -O)''' % (bind_path, self.__root_cache)) command('''(cd "%s" && sbin/rndc-confgen > etc/rndc.conf)''' % bind_path) return True
def __haproxy_installer(self): command('''curl -o "%s.tar.gz" "%s%s.tar.gz"''' % (self.version, self.source_url, self.version)) command('''tar -xzf "%s.tar.gz"''' % self.version) command('''(cd %s && make TARGET=generic && cp haproxy %s)''' % (self.version, self.app_path)) command('''rm -rf %s && rm %s.tar.gz''' % (self.version, self.version)) return True
def __bind_stopper(self): command('''sudo kill -9 `ps aux | grep named | grep -v grep | awk '{print $2}'`''') def __bind_starter(self): command('''sudo "%s/sbin/named" -c "%s/etc/named.conf"''' % self.app_path)