X-Git-Url: http://git.veekun.com/zzz-floof.git/blobdiff_plain/a058598f1ee11c60f9718d0ec677df1424be79c3..79cb1c0d3048c165fd3b9ff287ee1fbe361f904d:/floof/websetup.py?ds=inline diff --git a/floof/websetup.py b/floof/websetup.py index 705c342..8f3d896 100644 --- a/floof/websetup.py +++ b/floof/websetup.py @@ -1,15 +1,52 @@ +# -*- coding: utf-8 -*- """Setup the floof application""" import logging from floof.config.environment import load_environment -from floof.model import meta -import elixir log = logging.getLogger(__name__) +from pylons import config +from elixir import * +from floof import model as model + +import os + def setup_app(command, conf, vars): """Place any commands to setup floof here""" load_environment(conf.global_conf, conf.local_conf) - # Create the tables if they don't already exist - elixir.create_all(bind=meta.engine, checkfirst=False) + # We try to recreate the db when it already exists, like, a lot. This + # fucks everything. Do a dumb check for it. + assert not model.User.table.exists(), \ + "Database is already initialized; please purge it first." + + ### Database schema + model.metadata.create_all() + + ### Sample data + # Users + identity_url = model.IdentityURL(url=u'http://eevee.livejournal.com/') + user = model.User(name=u'eevee', display_name=u'Eevee') + user.identity_urls.append(identity_url) + + model.Session.commit() + + ### Filesystem stuff + # Only necessary if we're using the filesystem for storage. + # And we are! + art_path = os.path.join(config['app_conf']['static_root'], 'art') + # Test that we can write to the art directory + if os.access(art_path, os.W_OK | os.X_OK): + # Create directories for various image sizes + for subdir in ['original', 'medium', 'thumbnail']: + path = os.path.join(art_path, subdir) + # If it exists, it should be writeable. If not, create it. + if os.path.exists(path): + if not os.access(path, os.W_OK | os.X_OK): + print "*** WARNING: Can't write to the art/{0} " \ + "directory!".format(subdir) + continue + os.makedirs(path) + else: + print "*** WARNING: Can't write to the art directory!"