Цей коміт міститься в:
scragg 2013-09-30 09:34:16 -05:00
джерело 32e152a2a7
коміт 10b74fbc4f
4 змінених файлів з 32 додано та 13 видалено

@ -2,20 +2,21 @@ import config
import redis import redis
import logging import logging
import rethinkdb as rdb import rethinkdb as rdb
import os
from flask import Flask, request, render_template, url_for, redirect from flask import Flask, request, render_template, url_for, redirect
from flask.ext.bcrypt import Bcrypt from flask.ext.bcrypt import Bcrypt
from flask.ext.login import LoginManager from flask.ext.login import LoginManager
from flask.ext.assets import Environment from flask.ext.assets import Environment
from session import RedisSessionInterface from session import RedisSessionInterface
from gittle import Gittle from gittle import Gittle
from os import sep, path
from wiki import Wiki from wiki import Wiki
from util import mkdir_safe
app = Flask(__name__) app = Flask(__name__)
app.config.update(config.flask) app.config.update(config.flask)
app.debug = (config.ENV is not 'PROD') app.debug = (config.ENV is not 'PROD')
app.secret_key = config.secret_key app.secret_key = config.secret_key
app.static_path = sep + 'static' app.static_path = os.sep + 'static'
app.session_interface = RedisSessionInterface() app.session_interface = RedisSessionInterface()
bcrypt = Bcrypt(app) bcrypt = Bcrypt(app)
@ -29,13 +30,26 @@ assets.directory = app.static_folder
cache = redis.StrictRedis(host=config.cache['host'], port=config.cache['port']) cache = redis.StrictRedis(host=config.cache['host'], port=config.cache['port'])
conn = rdb.connect(config.db['host'], config.db['port']) conn = rdb.connect(config.db['host'], config.db['port'], db=config.db['dbname'])
if not config.db['dbname'] in rdb.db_list().run(conn) and config.ENV is not 'PROD':
# Create default db and repo
print "Creating DB %s" % config.db['dbname']
rdb.db_create(config.db['dbname']).run(conn)
for tbl in ['sites', 'users', 'pages']:
rdb.table_create(tbl).run(conn)
repo_dir = config.repos['dir'] + "/" + config.repos['main']
repo = Gittle(repo_dir)
mkdir_safe(repo_dir)
if not repo.has_index():
repo.init(repo_dir)
from models import Site from models import Site
site = Site.get_by_name(".") w = Wiki(repo_dir)
w = Wiki(site.get('repo'))
def redirect_url(): def redirect_url():

@ -1,4 +1,5 @@
from reimagine import rdb, conn import rethinkdb as rdb
from reimagine import conn
def get_one(cur): def get_one(cur):
@ -7,9 +8,7 @@ def get_one(cur):
class BaseModel(): class BaseModel():
__db__ = None
__table__ = None __table__ = None
_rdb = rdb
_conn = conn _conn = conn
def __init__(self): def __init__(self):
@ -17,14 +16,13 @@ class BaseModel():
@classmethod @classmethod
def filter(cls, f, limit=None): def filter(cls, f, limit=None):
q = cls._rdb.db(cls.__db__).table(cls.__table__).filter(f) q = rdb.table(cls.__table__).filter(f)
if limit: if limit:
q.limit(int(limit)) q.limit(int(limit))
return q.run(cls._conn) return q.run(cls._conn)
class Site(BaseModel): class Site(BaseModel):
__db__ = 'lastdb'
__table__ = 'sites' __table__ = 'sites'
@classmethod @classmethod

@ -2,6 +2,12 @@ import re
import os import os
def mkdir_safe(path):
if path and not(os.path.exists(path)):
os.makedirs(path)
return path
def extract_path(file_path): def extract_path(file_path):
if not file_path: if not file_path:
return None return None

@ -18,7 +18,7 @@ nodaemon = false
minfds = 1024 minfds = 1024
minprocs = 200 minprocs = 200
umask = 022 umask = 022
user = deploy user = root
identifier = supervisor identifier = supervisor
directory = /tmp directory = /tmp
nocleanup = true nocleanup = true
@ -29,4 +29,5 @@ strip_ansi = false
command=/usr/bin/python /vagrant/app.py command=/usr/bin/python /vagrant/app.py
[program:rethinkdb] [program:rethinkdb]
command=/usr/bin/rethinkdb --config-file /etc/rethinkdb/rdb0.conf command=/usr/bin/rethinkdb --config-file /etc/rethinkdb/rdb0.conf
user=root