aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristopher Allan Webber <cwebber@dustycloud.org>2011-04-17 13:44:10 -0500
committerChristopher Allan Webber <cwebber@dustycloud.org>2011-04-17 13:44:10 -0500
commitdf0953ce453cd82989537df598613db2c0d3b055 (patch)
treee2f24e5323c824ca274b0d935670585862c558a0
parent49461402d1abd6c9446a505b32946538f5c46623 (diff)
downloadmediagoblin-df0953ce453cd82989537df598613db2c0d3b055.tar.lz
mediagoblin-df0953ce453cd82989537df598613db2c0d3b055.tar.xz
mediagoblin-df0953ce453cd82989537df598613db2c0d3b055.zip
Buildout script which creates user_dev directory and necessary
subdirectories for the user.
-rw-r--r--buildout.cfg6
-rw-r--r--mediagoblin/buildout_recipes.py50
-rw-r--r--setup.py3
3 files changed, 58 insertions, 1 deletions
diff --git a/buildout.cfg b/buildout.cfg
index e82e3827..2b36fb7c 100644
--- a/buildout.cfg
+++ b/buildout.cfg
@@ -1,6 +1,6 @@
[buildout]
develop = .
-parts = mediagoblin
+parts = mediagoblin make_user_dev_dirs
[mediagoblin]
recipe=zc.recipe.egg
@@ -10,3 +10,7 @@ entry-points =
nosetests=nose:run_exit
paster=paste.script.command:run
+
+[make_user_dev_dirs]
+recipe = mediagoblin:make_user_dev_dirs
+path = user_dev \ No newline at end of file
diff --git a/mediagoblin/buildout_recipes.py b/mediagoblin/buildout_recipes.py
new file mode 100644
index 00000000..abb01b9e
--- /dev/null
+++ b/mediagoblin/buildout_recipes.py
@@ -0,0 +1,50 @@
+# GNU MediaGoblin -- federated, autonomous media hosting
+# Copyright (C) 2011 Free Software Foundation, Inc
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+import logging
+import os
+
+
+MAKE_SUBDIRECTORIES = ['media/queue', 'media/public', 'beaker']
+
+
+class MakeUserDevDirs(object):
+ """
+ Simple recipe for making subdirectories for user buildout convenience
+ """
+ def __init__(self, buildout, name, options):
+ self.buildout, self.name, self.options = buildout, name, options
+
+ if self.options['path'].startswith('/'):
+ self.path = self.options['path']
+ else:
+ self.path = os.path.join(
+ self.buildout['buildout']['directory'],
+ self.options['path'])
+
+ def install(self):
+ for make_subdir in MAKE_SUBDIRECTORIES:
+ fulldir = os.path.join(self.path, make_subdir)
+
+ if not os.path.exists(fulldir):
+ logging.getLogger(self.name).info(
+ 'Creating directory %s' % fulldir)
+ os.makedirs(fulldir)
+
+ return ()
+
+ update = install
diff --git a/setup.py b/setup.py
index 1d790779..b47be4c3 100644
--- a/setup.py
+++ b/setup.py
@@ -45,5 +45,8 @@ setup(
entry_points = """\
[paste.app_factory]
app = mediagoblin.app:paste_app_factory
+
+ [zc.buildout]
+ make_user_dev_dirs = mediagoblin.buildout_recipes:MakeUserDevDirs
""",
)