diff options
author | Christopher Allan Webber <cwebber@dustycloud.org> | 2011-04-17 13:44:10 -0500 |
---|---|---|
committer | Christopher Allan Webber <cwebber@dustycloud.org> | 2011-04-17 13:44:10 -0500 |
commit | df0953ce453cd82989537df598613db2c0d3b055 (patch) | |
tree | e2f24e5323c824ca274b0d935670585862c558a0 | |
parent | 49461402d1abd6c9446a505b32946538f5c46623 (diff) | |
download | mediagoblin-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.cfg | 6 | ||||
-rw-r--r-- | mediagoblin/buildout_recipes.py | 50 | ||||
-rw-r--r-- | setup.py | 3 |
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 @@ -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 """, ) |