comparison makeitso/cli.py @ 62:30100690ad3f

display defaults with command line --help option
author Jeff Hammel <jhammel@mozilla.com>
date Thu, 06 Jan 2011 17:49:40 -0800
parents 57f9b0349192
children cce0da329f59
comparison
equal deleted inserted replaced
61:57f9b0349192 62:30100690ad3f
1 """ 1 """
2 command line parser for MakeItSo 2 command line parser for MakeItSo
3 """ 3 """
4 4
5 from template import Undefined
5 from optparse import OptionParser 6 from optparse import OptionParser
6 7
7 class MakeItSoCLI(object): 8 class MakeItSoCLI(object):
8 """command line interface to a makeitso template""" 9 """command line interface to a makeitso template"""
9 10
18 description = getattr(self.template_class, 'description', None) 19 description = getattr(self.template_class, 'description', None)
19 parser = OptionParser(usage=usage, description=description) 20 parser = OptionParser(usage=usage, description=description)
20 21
21 # add the variables as options 22 # add the variables as options
22 for variable in self.template_class.vars: 23 for variable in self.template_class.vars:
24 description = variable.description
25 if (variable.default is not None) and (variable.default is not Undefined):
26 description += ' [DEFAULT: %s]' % variable.default
23 parser.add_option('--%s' % variable.name, dest=variable.name, 27 parser.add_option('--%s' % variable.name, dest=variable.name,
24 default=variable.default, 28 default=variable.default,
25 help=variable.description) 29 help=description)
26 return parser 30 return parser
27 31
28 def parse(self): 32 def parse(self):
29 parser = self.parser() 33 parser = self.parser()
30 options, args = parser.parse_args() 34 options, args = parser.parse_args()