Also moving the test_server.ini to test_paste.ini to avoid ambiguity.
[mediagoblin.git] / mediagoblin / buildout_recipes.py
1 # GNU MediaGoblin -- federated, autonomous media hosting
2 # Copyright (C) 2011 Free Software Foundation, Inc
3 #
4 # This program is free software: you can redistribute it and/or modify
5 # it under the terms of the GNU Affero General Public License as published by
6 # the Free Software Foundation, either version 3 of the License, or
7 # (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU Affero General Public License for more details.
13 #
14 # You should have received a copy of the GNU Affero General Public License
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
16
17
18 import logging
19 import os
20
21
22 MAKE_SUBDIRECTORIES = ['media/queue', 'media/public', 'beaker']
23
24
25 class MakeUserDevDirs(object):
26 """
27 Simple recipe for making subdirectories for user buildout convenience
28 """
29 def __init__(self, buildout, name, options):
30 self.buildout, self.name, self.options = buildout, name, options
31
32 if self.options['path'].startswith('/'):
33 self.path = self.options['path']
34 else:
35 self.path = os.path.join(
36 self.buildout['buildout']['directory'],
37 self.options['path'])
38
39 def install(self):
40 for make_subdir in MAKE_SUBDIRECTORIES:
41 fulldir = os.path.join(self.path, make_subdir)
42
43 if not os.path.exists(fulldir):
44 logging.getLogger(self.name).info(
45 'Creating directory %s' % fulldir)
46 os.makedirs(fulldir)
47
48 return ()
49
50 update = install