Mercurial > hg > MakeItSo
comparison makeitso/cli.py @ 61:57f9b0349192
wait, its completely silly to print the variables since OptionParser already does that
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Thu, 06 Jan 2011 17:14:22 -0800 |
parents | da0d8c5c5157 |
children | 30100690ad3f |
comparison
equal
deleted
inserted
replaced
60:da0d8c5c5157 | 61:57f9b0349192 |
---|---|
21 # add the variables as options | 21 # add the variables as options |
22 for variable in self.template_class.vars: | 22 for variable in self.template_class.vars: |
23 parser.add_option('--%s' % variable.name, dest=variable.name, | 23 parser.add_option('--%s' % variable.name, dest=variable.name, |
24 default=variable.default, | 24 default=variable.default, |
25 help=variable.description) | 25 help=variable.description) |
26 | |
27 # add CLI-specific options | |
28 # should start with '_' to indicate reserved | |
29 parser.add_option('--variables', dest='_print_variables', | |
30 action='store_true', default=False, | |
31 help="display variables in the template") | |
32 return parser | 26 return parser |
33 | 27 |
34 def parse(self): | 28 def parse(self): |
35 parser = self.parser() | 29 parser = self.parser() |
36 options, args = parser.parse_args() | 30 options, args = parser.parse_args() |
37 | 31 |
38 # print the variables for the templates | |
39 if options._print_variables: | |
40 | |
41 # find all variables | |
42 template = self.template() | |
43 variables = template.variables() | |
44 | |
45 # print them | |
46 for variable in sorted(variables): | |
47 print variable | |
48 return | |
49 | |
50 # ensure output is given | 32 # ensure output is given |
51 if len(args) != 1: | 33 if len(args) != 1: |
52 parser.error("Please specify one output") | 34 parser.error("Please specify a single output destination") |
53 | 35 |
54 # template variables | 36 # template variables |
55 variables = dict([(key, value) | 37 variables = dict([(key, value) |
56 for key, value in options.__dict__.items() | 38 for key, value in options.__dict__.items() |
57 if not key.startswith('_')]) | 39 if not key.startswith('_')]) |