Mercurial > hg > MakeItSo
annotate makeitso/template.py @ 63:b91133e3b02d
override get_variables for API template; could instead do this in the ctor, alternately
| author | Jeff Hammel <jhammel@mozilla.com> |
|---|---|
| date | Thu, 06 Jan 2011 17:58:34 -0800 |
| parents | 30100690ad3f |
| children | c20277dbf8fa |
| rev | line source |
|---|---|
|
41
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1 """ |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2 basic API template class |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3 """ |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4 |
|
42
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
5 import os |
|
41
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
6 import sys |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
7 from makeitso import ContentTemplate |
|
42
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
8 from makeitso import PolyTemplate |
|
41
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
9 |
|
44
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
10 class Undefined(object): |
|
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
11 """marker class for variables""" |
|
62
30100690ad3f
display defaults with command line --help option
Jeff Hammel <jhammel@mozilla.com>
parents:
58
diff
changeset
|
12 def __int__(self): |
|
30100690ad3f
display defaults with command line --help option
Jeff Hammel <jhammel@mozilla.com>
parents:
58
diff
changeset
|
13 return 0 |
|
44
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
14 Undefined = Undefined() # singleton |
|
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
15 |
|
41
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
16 class Variable(object): |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
17 """variable object for MakeItSo templates""" |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
18 |
|
58
112bf081148c
make a full CLI class for a single API template
Jeff Hammel <jhammel@mozilla.com>
parents:
56
diff
changeset
|
19 def __init__(self, name, description=None, default=Undefined, |
|
41
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
20 cast=None): |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
21 self.name = name |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
22 self.default = default |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
23 self.description = description |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
24 |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
25 # TODO (maybe): get cast from default variable type if not None |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
26 self.cast = cast |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
27 |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
28 self._set = False |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
29 |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
30 def set(self, value): |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
31 if self.cast: |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
32 self.value = self.cast(value) |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
33 else: |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
34 self.value = value |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
35 self._set = True |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
36 |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
37 def read(self, fd=sys.stdout): |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
38 """prompt and read the variable from stdin""" |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
39 fd.write(self.display()) |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
40 self.set(raw_input()) |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
41 |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
42 def display(self): |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
43 description = self.description or self.name |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
44 if self.default: |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
45 return 'Enter %s [DEFAULT: %s]:' % (description, repr(self.default)) |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
46 else: |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
47 return 'Enter %s:' % description |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
48 |
|
42
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
49 class MakeItSoTemplate(ContentTemplate): |
|
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
50 """API template for MakeItSo""" |
|
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
51 |
|
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
52 # name of the template |
|
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
53 name = '' |
|
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
54 |
|
56
728cae02a6ed
* fix another variable-related bug
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
55 # description of the template |
|
728cae02a6ed
* fix another variable-related bug
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
56 description = '' |
|
728cae02a6ed
* fix another variable-related bug
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
57 |
|
42
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
58 # templates to interpolate |
|
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
59 # paths are relative to __file__ unless absolute or URIs |
|
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
60 templates = [] |
|
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
61 |
|
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
62 # variables |
|
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
63 vars = [] |
|
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
64 |
|
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
65 # inspect the templates for more variables |
|
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
66 look = False |
|
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
67 |
|
58
112bf081148c
make a full CLI class for a single API template
Jeff Hammel <jhammel@mozilla.com>
parents:
56
diff
changeset
|
68 def __init__(self, output=None, interactive=True, usedefaults=True, |
|
112bf081148c
make a full CLI class for a single API template
Jeff Hammel <jhammel@mozilla.com>
parents:
56
diff
changeset
|
69 variables=None): |
|
44
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
70 """ |
|
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
71 - output : output file or directory |
|
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
72 - interactive : whether tointeractively get variables |
|
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
73 - usedefaults : try to use the default values if not specified |
|
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
74 """ |
|
63
b91133e3b02d
override get_variables for API template; could instead do this in the ctor, alternately
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
75 |
|
b91133e3b02d
override get_variables for API template; could instead do this in the ctor, alternately
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
76 # boilerplate |
|
42
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
77 assert self.templates |
|
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
78 self.output = output |
|
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
79 self.interactive = interactive |
|
58
112bf081148c
make a full CLI class for a single API template
Jeff Hammel <jhammel@mozilla.com>
parents:
56
diff
changeset
|
80 self.location = os.path.dirname(os.path.abspath(__file__)) |
|
112bf081148c
make a full CLI class for a single API template
Jeff Hammel <jhammel@mozilla.com>
parents:
56
diff
changeset
|
81 self.defaults = variables.copy() |
|
63
b91133e3b02d
override get_variables for API template; could instead do this in the ctor, alternately
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
82 self.usedefaults = usedefaults |
|
42
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
83 |
|
58
112bf081148c
make a full CLI class for a single API template
Jeff Hammel <jhammel@mozilla.com>
parents:
56
diff
changeset
|
84 # make a dictionary of the variables for lookup convenience |
|
44
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
85 self.vardict = {} |
|
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
86 for i in self.vars: |
|
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
87 self.vardict[i.name] = i |
|
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
88 |
|
42
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
89 # ensure all of these templates exist |
|
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
90 for template in self.templates: |
|
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
91 if template.startswith('http://') or template.startswith('https://'): |
|
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
92 continue |
|
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
93 if os.path.isabs(template): |
|
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
94 path = template |
|
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
95 else: |
|
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
96 path = os.path.join(self.location, template) |
|
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
97 assert os.path.exists(template) |
|
41
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
98 |
|
63
b91133e3b02d
override get_variables for API template; could instead do this in the ctor, alternately
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
99 def get_variables(self, **variables): |
|
b91133e3b02d
override get_variables for API template; could instead do this in the ctor, alternately
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
100 # XXX could do this in the ctor |
|
b91133e3b02d
override get_variables for API template; could instead do this in the ctor, alternately
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
101 vars = ContentTemplate.get_variables(self, **variables) |
|
b91133e3b02d
override get_variables for API template; could instead do this in the ctor, alternately
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
102 if self.usedefaults: |
|
b91133e3b02d
override get_variables for API template; could instead do this in the ctor, alternately
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
103 for variable in self.vars: |
|
b91133e3b02d
override get_variables for API template; could instead do this in the ctor, alternately
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
104 if variable.name in vars: |
|
b91133e3b02d
override get_variables for API template; could instead do this in the ctor, alternately
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
105 continue |
|
b91133e3b02d
override get_variables for API template; could instead do this in the ctor, alternately
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
106 if variable.default is not Undefined: |
|
b91133e3b02d
override get_variables for API template; could instead do this in the ctor, alternately
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
107 vars[variable.name] = variable.default |
|
b91133e3b02d
override get_variables for API template; could instead do this in the ctor, alternately
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
108 return vars |
|
b91133e3b02d
override get_variables for API template; could instead do this in the ctor, alternately
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
109 |
|
44
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
110 def missing(self, **variables): |
|
63
b91133e3b02d
override get_variables for API template; could instead do this in the ctor, alternately
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
111 vars = self.get_variables(**variables) |
|
62
30100690ad3f
display defaults with command line --help option
Jeff Hammel <jhammel@mozilla.com>
parents:
58
diff
changeset
|
112 missing = set([]) |
|
44
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
113 if self.look: |
|
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
114 pass |
|
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
115 else: |
|
62
30100690ad3f
display defaults with command line --help option
Jeff Hammel <jhammel@mozilla.com>
parents:
58
diff
changeset
|
116 for var in self.vars: |
|
30100690ad3f
display defaults with command line --help option
Jeff Hammel <jhammel@mozilla.com>
parents:
58
diff
changeset
|
117 if self.usedefaults: |
|
63
b91133e3b02d
override get_variables for API template; could instead do this in the ctor, alternately
Jeff Hammel <jhammel@mozilla.com>
parents:
62
diff
changeset
|
118 import pdb; pdb.set_trace() |
|
62
30100690ad3f
display defaults with command line --help option
Jeff Hammel <jhammel@mozilla.com>
parents:
58
diff
changeset
|
119 else: |
|
30100690ad3f
display defaults with command line --help option
Jeff Hammel <jhammel@mozilla.com>
parents:
58
diff
changeset
|
120 pass |
|
44
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
121 |
|
41
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
122 def pre(self, **variables): |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
123 """do stuff before interpolation""" |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
124 |
|
44
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
125 def substitute(self, **variables): |
|
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
126 """do the substitution""" |
|
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
127 vars = self.get_variables(**variables) |
|
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
128 self.pre(**variables) |
|
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
129 self.check_missing(vars) |
|
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
130 self.post(**variables) |
|
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
131 |
|
41
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
132 def post(self, **variables): |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
133 """do stuff after interpolation""" |
|
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
134 |
|
44
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
135 def read_variables(self, variables): |
|
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
136 """read variables from stdin""" |
|
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
137 retval = {} |
|
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
138 for i in variables: |
|
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
139 if i in self.vardict: |
|
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
140 self.vardict[i].read() |
|
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
141 else: |
|
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
142 retval.update(ContentTemplate.read_variables(self, (i,))) |
|
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
42
diff
changeset
|
143 return retval |
|
41
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
144 |
|
42
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
145 class PasteScriptTemplate(MakeItSoTemplate): |
|
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
Jeff Hammel <jhammel@mozilla.com>
parents:
41
diff
changeset
|
146 """template for backwards compatability with PasteScript""" |
