~loggerhead-team/loggerhead/trunk-rich

« back to all changes in this revision

Viewing changes to loggerhead/config.py

  • Committer: Matt Nordhoff
  • Date: 2009-10-17 06:55:25 UTC
  • mfrom: (389.2.2 pep8-2009-10)
  • mto: This revision was merged to the branch mainline in revision 406.
  • Revision ID: mnordhoff@mattnordhoff.com-20091017065525-ap2nj2bb0mx3ifq2
Merge my new pep8-2009-10 branch

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#
 
2
# Copyright (C) 2008, 2009 Canonical Ltd
 
3
#
 
4
# This program is free software; you can redistribute it and/or modify
 
5
# it under the terms of the GNU General Public License as published by
 
6
# the Free Software Foundation; either version 2 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 General Public License for more details.
 
13
#
1
14
'''Configuration tools for Loggerhead.'''
 
15
 
2
16
from optparse import OptionParser
3
17
import sys
4
18
import tempfile
5
19
 
 
20
from bzrlib import config
6
21
 
7
22
_temporary_sql_dir = None
8
23
 
20
35
        log_folder=None,
21
36
        use_cdn=False,
22
37
        sql_dir=None,
 
38
        allow_writes=False,
23
39
        )
24
40
    parser.add_option("--user-dirs", action="store_true",
25
41
                      help="Serve user directories as ~user.")
31
47
    parser.add_option("--host", dest="user_host",
32
48
                      help="Host Loggerhead should listen on.")
33
49
    parser.add_option('--memory-profile', action='store_true',
34
 
                      help='Profile the memory usage using heapy.')
 
50
                      help='Profile the memory usage using Dozer.')
35
51
    parser.add_option("--prefix", dest="user_prefix",
36
52
                      help="Specify host prefix.")
37
53
    parser.add_option("--profile", action="store_true",
44
60
                      help="The directory to place log files in.")
45
61
    parser.add_option("--version", action="store_true", dest="show_version",
46
62
                      help="Print the software version and exit")
47
 
    parser.add_option('--use-cdn', action='store_true',
 
63
    parser.add_option("--use-cdn", action="store_true", dest="use_cdn",
48
64
                      help="Serve YUI from Yahoo!'s CDN")
49
 
    parser.add_option('--cache-dir', dest='sql_dir',
 
65
    parser.add_option("--cache-dir", dest="sql_dir",
50
66
                      help="The directory to place the SQL cache in")
 
67
    parser.add_option('--allow-writes', action='store_true',
 
68
                      help="Allow writing to the Bazaar server.")
51
69
    return parser
52
70
 
53
71
 
54
72
class LoggerheadConfig(object):
55
73
    '''A configuration object.'''
56
74
 
57
 
    def __init__(self):
 
75
    def __init__(self, argv=None):
 
76
        if argv is None:
 
77
            argv = sys.argv[1:]
58
78
        self._parser = command_line_parser()
59
 
        self._options, self._args = self._parser.parse_args(sys.argv[1:])
 
79
        self._options, self._args = self._parser.parse_args(argv)
60
80
 
61
81
        sql_dir = self.get_option('sql_dir')
62
82
        if sql_dir is None:
64
84
        self.SQL_DIR = sql_dir
65
85
 
66
86
    def get_option(self, option):
67
 
        '''Get an option from the options dict.'''
68
 
        return getattr(self._options, option)
 
87
        """Get the value for the config option, either 
 
88
           from ~/.bazaar/bazaar.conf or from the command line.
 
89
           All loggerhead-specific settings start with 'http_'"""
 
90
        global_config = config.GlobalConfig().get_user_option('http_'+option)
 
91
        cmd_config = getattr(self._options, option)
 
92
        if global_config is not None and (
 
93
            cmd_config is None or cmd_config is False):
 
94
            return global_config
 
95
        else:
 
96
            return cmd_config
69
97
 
70
98
    def get_arg(self, index):
71
 
        '''Get an arg from the arg list.'''
 
99
        """Get an arg from the arg list."""
72
100
        return self._args[index]
73
101
 
74
102
    def print_help(self):
75
 
        '''Wrapper around OptionParser.print_help.'''
 
103
        """Wrapper around OptionParser.print_help."""
76
104
        return self._parser.print_help()
77
105
 
78
106
    @property
79
107
    def arg_count(self):
80
 
        '''Return the number of args from the option parser.'''
 
108
        """Return the number of args from the option parser."""
81
109
        return len(self._args)