ffizer
ffizer is a files and folders initializer / generator. Create any kind (or part) of project from template.
keywords: file generator, project template, project scaffolding, quickstart, project initializer, project skeleton
Motivations
Main features
- project generator as a standalone executable (no shared/system dependencies (so no python + pip + ...))
- a simple and generic project template (no specialisation to one ecosystem)
- template as simple as possible, like a
- copy or clone with file/folder renames without overwrite
- few search and replace into file
- chain commands (eg: 'git init') (like a post-hook)
- template hosted as a local folder on the file system
- template hosted as a (top) git repository on any host (not only public github)
- a fast enough project generator
Sub features
- dry mode (usefull to test)
- chain template generation because fragment of templates can be commons
Limitations
Some of the following limitations could change in the future (depends on gain/loss):
- no conditionnals file or folder creation
- no update of existing file or folder
- no specials features
- no plugin and not extensible (without change the code)
- handlebars is the only template language supported (support for other is welcome)
Usages
Install
Run
)
) )
Create your first template
( from scratch without ffizer ;-) )
# create the folder with the template
# add file that will be copied as is
# add a template file that will be "rendered" by the handlebars engine
# - the file should have the .ffizer.hbs extension,
# - the extension .ffizer.hbs is removed from the generated filename
# - [Handlebars templating language](https://handlebarsjs.com/)
# add a file with a name that will be "rendered" by the handlebars engine
# - the file should have {{ variable }},
# - [Handlebars templating language](https://handlebarsjs.com/)
The minimal template is an empty dir.
Build
Alternatives
Generic
- Cookiecutter, lot of templates, require python + pip + install dependencies on system (automatic)
- Cookiecutter — Similar projects
- sethyuan/fgen: A file generator library to be used to generate project structures, file templates and/or snippets. Templates are based on mustache. require nodejs
- project_init in rust, use mustache for templating but I have some issues with it (project template creation not obvious, github only, plus few bug) I could contributes but I have incompatible requirements (and would like to create my own since a long time).
- skeleton, good idea but no template file, more like a script.
- porteurbars, very similar but I discover it too late.
Specialized
specilazed to a platform, build tool,...
- The web's scaffolding tool for modern webapps | Yeoman, nodejs ecosystem
- JHipster - Generate your Spring Boot + Angular/React applications! require java, dedicated to java web ecosystem, optionnated template (not generic)
- Giter8 require java + Conscript
- Typesafe activator, require java, target scala ecosystem
- Maven – Archetypes require java + maven, target maven ecosystem
- cargo-generate, limited capabilities, target rust/cargo ecosystem