Tony's Almighty Project Generator
A general-purpose, language-agnostic, yet simple and fast (i.e. almighty) project generator to bootstrap and scaffold your projects easily.
Wanna start developing your new project real quick? Run a single command and you can start coding right away.
Productivity++: No more wasting your time copy-and-pasting boilerplate starter code.
-
Just run the binary: No intepreters or environment setup needed.
-
Bloat-free command line tool: No more overwhelmed by tons of flags and options, i.e. it just simply works.
-
Full power of the
MiniJinja
template engine.- fast and lightweight
- familiar syntax of Jinja2
- extensible filters and functions etc.
-
Customizable prompts and template variables.
- conditional prompts
- range for integers
- regex pattern validation for strings
- single choice or multiple choices prompts
-
Scripts as hooks that are run before and after generation.
-
Like Cookiecutter, but faaaster (written in Rust).
$ tapgen <SRC> [DST]
Currently, SRC
can be one of the following:
-
shorthand for git source1:
github:<owner>/<repo>
gitlab:<owner>/<repo>
bitbucket:<owner>/<repo>
-
shorthand for prefix source2:
@:<path/to/template/under/prefix>
-
path to local
tapgen.toml
file or directory that contains atapgen.toml
file
1: You can specify additional path in case when
the repository contains multiple templates, or when the template is several levels deep inside the repository,
e.g. github:tnychn/templates/subdir1/subdir2
.
2: Relative to the prefix path, e.g. if the prefix path is /Users/tony/.tapgen
,
then @:foo/bar
becomes /Users/tony/.tapgen/foo/bar
.
-
Override variable values in CLI.
-
Replay previous generation.
-
Support templated defaults.
-
Extend template filters/functions/tests via scripting.
~ crafted with ♥︎ by tnychn ~
MIT © 2024 Tony Chan