Install script for Typo-4.1.1

-----BEGIN WEBFACTION INSTALL SCRIPT-----
#!/usr/local/bin/python2.5

"""
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-----