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]