Crates.io | reframe |
lib.rs | reframe |
version | 0.5.2 |
source | src |
created_at | 2019-02-21 12:44:18.639413 |
updated_at | 2022-08-22 07:41:34.237841 |
description | Light, Fast & Simple project scaffolder |
homepage | https://github.com/Ansvia/reframe |
repository | https://github.com/Ansvia/reframe |
max_upload_size | |
id | 116224 |
size | 125,671 |
Because "don't repeat yourself"
If you need build project in matter of seconds, this tool for you.
For detail usage please check Reframe Documentation.
For Mac with homebrew:
brew tap ansvia/tools
brew install reframe
Or, if you have Cargo, type:
$ cargo install reframe
Download binary for your specific platform from release page.
$ reframe [SOURCE]
$ reframe anvie/basic-rust
anvie/basic-rust
is refering to my github repo: basic-rust.rf.
To create Reframe source is super duper easy, all you needs is write Reframe.toml
at the root project dir, example:
[project]
name = "Hello World"
version = "1.0"
[[param]]
with_serde = { ask = "Dengan serde?", default = false }
[[param]]
serde_version = { ask = "Versi serde?", default = "1.0", if="with_serde" }
[[param]]
# without default value means required
author_name = { ask = "Author name?" }
[[param]]
author_email = { ask = "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
.
So when you need to get project name with snake case, write: $name_snake_case$.
When you done, you can test using reframe [YOUR-WORKING-TEMPLATE-DIR]
,
if all is ok, push the project to your github repo with additional postfix .rf
at the project name, eg: if your repo name is unicorn
then you must push with name unicorn.rf
, and finally you can use anywhere by simply typing:
$ reframe [MY-GITHUB-USERNAME]/[MY-TEMPLATE]
Example:
$ reframe agus/unicorn
For detail usage please check Reframe Documentation.
Reframe source 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
-> MyCoolAppYou can also use builtin variables:
year
-> Print current year, eg: 2019.
month_name
-> Print current month, eg: July
Reframe also support templating engine for manipulating code use Handlebars syntax, example:
{{#if with_jwt}}
const jwt = require('jsonwebtoken');
{{/if}}
For more sources see SOURCES.
You can also list available sources by typing:
reframe --list