Reframe
Because "don't repeat yourself"
If you need to build a project in matter of seconds, this tool for you.
Install
Download binary file for your specific platform from release page.
Or, if you are Rust and Cargo user, type:
$ cargo install reframe
Usage
$ reframe [SOURCE]
Example
$ reframe anvie/basic-rust
anvie/basic-rust
is refering to my github repo: basic-rust.rf.
Build Template
To create Reframe template is super duper easy, all you needs is write file called Reframe.toml
and place in root project dir, example:
[]
= "Hello World"
= "1.0"
[[]]
= { = "Dengan serde?", = false }
[[]]
= { = "Versi serde?", = "1.0", ="with_serde" }
[[]]
# without default value means required
= { = "Author name?" }
[[]]
= { = "Author email?" }
Every string type param will have case variants automagically, eg: author_name
will have: author_name_lowercase
, author_name_snake_case
, author_name_kebab_case
.
After finish writing project template you can test using reframe [YOUR-WORKING-TEMPLATE-DIR]
,
if all is ok, push to your github repo with additional postfix .rf
at it repo name, eg: if your repo name is unicorn
then you must push with name unicorn.rf
, and finally you can use by simply typing:
$ reframe [MY-GITHUB-USERNAME]/[MY-TEMPLATE]
Example:
$ reframe agus/unicorn
For more detail please see working examples:
Supported case variants:
*_lower_case
-> my cool app*_snake_case
-> my_cool_app*_kebab_case
-> my-cool-app*_shout_snake_case
-> MY_COOL_APP*_upper_case
-> MY COOL APP*_camel_case
-> myCoolApp*_pascal_case
-> MyCoolApp
You can also use builtin variables:
year
-> Print current year, eg: 2019.month_name
-> Print current month, eg: July
"Ready for Work" sources
- ansvia/mainframe.rf - The most advanced full-stack framework.
- anvie/basic_cli.rf - Basic CLI application.
- anvie/rust-grpc.rf - Rust gRPC application.