Beispiel #1
0
import os
from functools import wraps

from flask.ext.script import Manager, Server, prompt, prompt_pass
from flask.ext.assets import ManageAssets

from pooldin import create_app
from pooldin.database import db
from pooldin.database.manage import DBManager
#from pooldin.database.models import User, Email
from pooldin.app.convert import to_int

manager = Manager(create_app)
manager.app = manager.create_app()
manager.add_command("assets", ManageAssets(manager.app.assets))

# Modify debug server to lisen on 0.0.0.0
port = os.environ.get('PORT')
port = to_int(port) or 5000
manager.add_command("runserver", Server(host='0.0.0.0', port=port))

db_manager = DBManager()
db_manager.add_app(manager.app)


def handle_interrupts(fn):
    @wraps(fn)
    def wrapper(*args, **kw):
        try:
            return fn(*args, **kw)
        except KeyboardInterrupt:
Beispiel #2
0
app = None
if os.path.isfile(config_path):
    app = create_app(config_path)

manager = Manager()
manager.add_command("db", flask.ext.migrate.MigrateCommand)


@manager.command
def superuser():
    from staff.utils import get_uid
    email = prompt("email")
    password = prompt_pass("password")

    datastore = app.extensions["security"].datastore
    user = datastore.find_user(email=email)
    if user is None:
        user = datastore.create_user(email=email, wx_user_id=get_uid())
        datastore.put(user)

    user.password = password
    role = datastore.find_or_create_role("admin")
    datastore.add_role_to_user(user, role)
    datastore.commit()


if __name__ == "__main__":
    manager.app = app
    migrate = flask.ext.migrate.Migrate(app, db)
    manager.run()
Beispiel #3
0
    """Initialize mongopatcher on the database by setting it manifest"""
    version = version or current_app.config["MONGOPATCHER_DATAMODEL_VERSION"]
    _get_mongopatcher().manifest.initialize(version, force)
    print("Datamodel initialized to version %s" % version)


@patcher_manager.option("-v", "--verbose", action="store_true", default=False, help="Show history")
def info(verbose):
    """Show version of the datamodel"""
    if _get_mongopatcher().manifest.is_initialized():
        print("Datamodel version: %s" % _get_mongopatcher().manifest.version)
        if verbose:
            print("\nUpdate history:")
            for update in reversed(_get_mongopatcher().manifest.history):
                reason = update.get("reason")
                reason = "(%s)" % reason if reason else ""
                print(" - %s: %s %s" % (update["timestamp"], update["version"], reason))
    else:
        print("Datamodel is not initialized")


if __name__ == "__main__":
    from flask import Flask
    import pymongo

    app = Flask(__name__)
    db = pymongo.MongoClient("mongodb://localhost:27017/test")
    init_patcher(app, db.get_default_database())
    patcher_manager.app = app
    patcher_manager.run()
Beispiel #4
0
import os
from functools import wraps

from flask.ext.script import Manager, Server, prompt, prompt_pass
from flask.ext.assets import ManageAssets

from pooldin import create_app
from pooldin.database import db
from pooldin.database.manage import DBManager
#from pooldin.database.models import User, Email
from pooldin.app.convert import to_int

manager = Manager(create_app)
manager.app = manager.create_app()
manager.add_command("assets", ManageAssets(manager.app.assets))

# Modify debug server to lisen on 0.0.0.0
port = os.environ.get('PORT')
port = to_int(port) or 5000
manager.add_command("runserver", Server(host='0.0.0.0', port=port))

db_manager = DBManager()
db_manager.add_app(manager.app)


def handle_interrupts(fn):
    @wraps(fn)
    def wrapper(*args, **kw):
        try:
            return fn(*args, **kw)
        except KeyboardInterrupt: