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:
bash
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:
```toml [project] name = "Hello World" version = "1.0"
[[param]] with_serde = { ask = "Dengan serde?", default = false }
[[param]] serdeversion = { ask = "Versi serde?", default = "1.0", if="withserde" }
[[param]]
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: $namesnakecase$.
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: * anvie/basic-rust.rf. * anvie/hello-world-py.rf
Supported case variants:
*_lower_case
-> my cool app*_snake_case
-> mycoolapp*_kebab_case
-> my-cool-app*_shout_snake_case
-> MYCOOLAPP*_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: JulyReframe also support templating engine for manipulating code use Handlebars syntax, example:
javascript
{{#if with_jwt}}
const jwt = require('jsonwebtoken');
{{/if}}
For more sources see SOURCES.
You can also list available sources by typing:
bash
reframe --list