Mercurial > hg > MakeItSo
comparison makeitso.txt @ 157:389dadabf45b
from docs; to combine with TODO.txt
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Tue, 30 Jul 2013 00:34:35 -0700 |
parents | |
children | 8f5bfd2e5a35 |
comparison
equal
deleted
inserted
replaced
156:a7a7c364568a | 157:389dadabf45b |
---|---|
1 Make it so! | |
2 =========== | |
3 | |
4 *A new file templating system* | |
5 | |
6 Requirements: | |
7 | |
8 - ability to specify delimeters (both for file interpolation and | |
9 filename interpolation); normally, i'd want '${' + '}', but this | |
10 works poor with, say, bash scripts, and not having this makes it | |
11 difficult to write templates that make other templates | |
12 | |
13 - ability to find the variables used in templates; I find this | |
14 absolutely critical. In PasteScript, this isn't there (unless you | |
15 use cheetah) and it is problematic if you want to deal with | |
16 templates programmatically. If you do allow things, like | |
17 single-file templates, then this becomes mandatory. | |
18 This is to say, amongst other things, there should be a | |
19 command-line option that will list the template variables. | |
20 | |
21 - ability to make existing directory structures or files into templates | |
22 | |
23 - ability to interpolate single files (or strings), especially via an API | |
24 | |
25 - ability to use defaults (--use-defaults) when they are specified | |
26 | |
27 - ability to save variables used in a run into a file: | |
28 makeitso --save-variables=myvars.txt mytemplate) | |
29 | |
30 - ability to have executing script files (for packaged tests or via a shebang) | |
31 | |
32 - a dotfile for metadata (e.g. ~/.makeitso) | |
33 | |
34 - hooks for things to do after creation (licensing, uploading | |
35 somewhere, creating a repository, etc) | |
36 | |
37 - not having to name template files 'foo_tmpl'; it is better not to | |
38 munge the file extension at all and have other mechanisms for | |
39 denoting files to be interpolated | |
40 | |
41 - single file usability | |
42 | |
43 Nice-to-haves: | |
44 | |
45 - ability to use python in interpolation [HARD?] | |
46 | |
47 - backwards compatability with pastescript templates | |
48 | |
49 - ability to inherit from templates [HARD] | |
50 | |
51 - ability to munge files (e.g. combining setup.py from several | |
52 packages) [HARD] | |
53 | |
54 - a web interface (or a few) | |
55 | |
56 - ability to push changes from a downstream instance to a template [HARD] |