Crates.io | ffizer |
lib.rs | ffizer |
version | 2.13.0 |
source | src |
created_at | 2018-11-11 12:21:24.804546 |
updated_at | 2024-11-05 19:50:41.021304 |
description | ffizer is a files and folders initializer / generator. It creates or updates any kind (or part) of project from template(s) |
homepage | https://ffizer.github.io/ffizer/book/ |
repository | https://github.com/ffizer/ffizer |
max_upload_size | |
id | 96062 |
size | 333,793 |
ffizer
is a files and folders initializer / generator. It creates or updates any kind (or part) of project from template(s).
keywords: file generator, project template, project scaffolding, quick start, project bootstrap, project skeleton
python
, ruby
, nodejs
, java
, ...)..gitignore
from gitignore.io
, license from spdx)template
github
/ bitbucket
/ gitlab
/ ...)
A list of alternatives is available on the wiki, feel free to complete / correct.
curl https://raw.githubusercontent.com/ffizer/ffizer/master/scripts/getLatest.sh | bash
Or download the binary for your platform from github releases, then un-archive it and place it your PATH.
brew install ffizer/ffizer/ffizer-bin
ffizer upgrade
# install pre-build binary via cargo-binstall
cargo binstall ffizer
# install from source
cargo install ffizer --force --features cli
❯ ffizer --help
ffizer is a files and folders initializer / generator.
It creates or updates any kind (or part) of project from template(s)
Usage: ffizer [OPTIONS] <COMMAND>
Commands:
apply Apply a template into a target directory
inspect Inspect configuration, caches,... (wip)
show-json-schema Show the json schema of the .ffizer.yaml files
test-samples test a template against its samples
help Print this message or the help of the given subcommand(s)
Options:
-v, --verbose... Verbose mode (-v, -vv (very verbose / level debug), -vvv) print on stderr
-h, --help Print help information
-V, --version Print version information
https://ffizer.github.io/ffizer/book/
❯ ffizer apply --help
Apply a template into a target directory
Usage: ffizer apply [OPTIONS] --source <URI> --destination <FOLDER>
Options:
--confirm <CONFIRM> ask for plan confirmation [default: Never] [possible values: auto, always, never]
--update-mode <UPDATE_MODE> mode to update existing file [default: Ask] [possible values: ask, keep, override, update-as-remote, current-as-local, show-diff, merge]
-y, --no-interaction should not ask for confirmation (to use default value, to apply plan, to override, to run script,...)
--offline in offline, only local templates or cached templates are used
-s, --source <URI> uri / path of the template
--rev <REV> git revision of the template [default: master]
--source-subfolder <FOLDER> path of the folder under the source uri to use for template
-d, --destination <FOLDER> destination folder (created if doesn't exist)
-v, --variables <KEY_VALUE> set variable's value from cli ("key=value")
-h, --help Print help information
-V, --version Print version information
use a local folder as template
ffizer apply --source $HOME/my_templates/tmpl0 --destination my_project
use a remote git repository as template
ffizer apply --source https://github.com/ffizer/template_sample.git --destination my_project
output
Configure variables
✔ project_name · my-project
✔ package_name · my_project
Plan to execute
- make dir my_project
- make dir ├─dir_1
- add file │ └─file_1_1.txt
- make dir ├─dir_2_my-project
- add file │ └─file_1_2.txt
- add file ├─file_1.txt
- add file ├─file_2.txt
- add file ├─file_3.txt
- add file ├─file_4_my_project.txt
- add file ├─file_5_my-project.txt
- add file └─file_6.hbs
Start with Template Authoring Tutorial
git clone ... && cd ... && rm -Rf .git
)cp -R ... ...
)ffizer/templates_default
: the default collections of templates for ffizer (WIP)davidB31 / cg-starter-multi-rust
· GitLab Project template for Multi-Bot in Rust on CodinGame.davidB/templates
: repository to host the my collections of templates to used with ffizer.ffizer-template
cargo install cargo-make --force
cargo make ci-flow
Update CHANGELOG.md
cargo make update-changelog
git add CHANGELOG.md
git commit -m ':memo: (CHANGELOG) update'
Release a new version by bump patch
(or minor
or major
)
cargo make publish patch # dry-run
cargo make publish --execute patch