default repo
This commit is contained in:
parent
32e152a2a7
commit
10b74fbc4f
|
@ -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
|
||||||
|
@ -30,3 +30,4 @@ 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
|
Loading…
Reference in a new issue