-----BEGIN WEBFACTION INSTALL SCRIPT-----
"""
Typo 4.1.1
"autostart": "Whether the app should get restarted with an autostart.cgi script or not"
"extra info": "leave empty"
"""
from sys import argv, exit
from xmlrpclib import Server
def create(app_name, autostart, db_name, db_user, password, server, session_id, username):
app = server.create_app(session_id, app_name, 'rails_121', autostart, '')
server.create_db(session_id, db_name, 'mysql', password)
cmd = ''
cmd += 'rm -fr $(ls | grep -e autostart.cgi -e vendor -v);'
cmd += 'wget http://wiki.webfaction.com/attachment/wiki/TypoFiles/typo-4.1.1.zip?format=raw -O typo-4.1.1.zip > /dev/null 2>&1;'
cmd += 'unzip -q typo-4.1.1.zip;'
cmd += 'mv vendor/rails/ typo-4.1.1/vendor/;'
cmd += 'rmdir -p vendor/plugins/;'
cmd += 'mv typo-4.1.1/* .;'
cmd += 'rmdir typo-4.1.1/;'
server.system(session_id, cmd)
data = ''
data += 'production:\n'
data += ' adapter: mysql\n'
data += ' database: %s\n' % db_name
data += ' password: %s\n' % password
data += ' username: %s\n' % db_user
server.write_file(session_id, 'config/database.yml', data, 'wb')
server.system(
session_id,
'mysql --password=%(password)s --user=%(db_user)s %(db_name)s < db/schema.mysql.sql' % locals(),
)
server.system(session_id, './autostart.cgi')
print app['id']
def delete(app_name, autostart, db_name, db_user, password, server, session_id, username):
cmd = ''
cmd += 'cd ~/webapps/%s/;' % app_name
cmd += 'mongrel_rails stop > /dev/null 2>&1;'
server.system(session_id, cmd)
server.delete_app(session_id, app_name)
server.delete_db(session_id, db_name, 'mysql')
if __name__ == '__main__':
action, username, password, machine, app_name, autostart, extra_info = argv[1:]
server = Server('https://api.webfaction.com/')
session_id, account = server.login(username, password, machine)
db_name = db_user = '%(username)s_%(app_name)s' % locals()
if len(db_name) > 16:
print 'Application name must be %i characters or less.' % (16 - 1 - len(username))
exit()
locals()[action](app_name, autostart, db_name, db_user, password, server, session_id, username)
-----END WEBFACTION INSTALL SCRIPT-----