Restrict usernames to lowercase, digits, and hyphens.
[zzz-floof.git] / floof / websetup.py
index a812633..a4e935f 100644 (file)
@@ -1,14 +1,49 @@
+# -*- coding: utf-8 -*-
 """Setup the floof application"""
 import logging
 
 from floof.config.environment import load_environment
-from floof.model import meta
 
 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
-    meta.metadata.create_all(bind=meta.engine)
+    ### Database schema
+    model.metadata.create_all()
+
+    ### Sample data
+    # Users
+    from floof.model.users import IdentityURL, User
+    identity_url = IdentityURL(url=u'http://eevee.livejournal.com/')
+    user = User(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!"