Buildout script which creates user_dev directory and necessary

subdirectories for the user.
This commit is contained in:
Christopher Allan Webber 2011-04-17 13:44:10 -05:00
parent 49461402d1
commit df0953ce45
3 changed files with 58 additions and 1 deletions

View File

@ -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

View File

@ -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

View File

@ -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
""",
)