reframe

Crates.ioreframe
lib.rsreframe
version0.5.2
sourcesrc
created_at2019-02-21 12:44:18.639413
updated_at2022-08-22 07:41:34.237841
descriptionLight, Fast & Simple project scaffolder
homepagehttps://github.com/Ansvia/reframe
repositoryhttps://github.com/Ansvia/reframe
max_upload_size
id116224
size125,671
Robin Syihab (anvie)

documentation

README

Reframe

Crates Build Status

Because "don't repeat yourself"

If you need build project in matter of seconds, this tool for you.

Reframe Demo

For detail usage please check Reframe Documentation.

Install

Homebrew

For Mac with homebrew:

brew tap ansvia/tools
brew install reframe

Cargo

Or, if you have Cargo, type:

$ cargo install reframe

Download binary

Download binary for your specific platform from release page.

Usage

$ reframe [SOURCE]

Example

$ reframe anvie/basic-rust

anvie/basic-rust is refering to my github repo: basic-rust.rf.

Build Source

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 -> MyCoolApp

You can also use builtin variables:

  • year -> Print current year, eg: 2019.

  • month_name -> Print current month, eg: July

Templating

Reframe also support templating engine for manipulating code use Handlebars syntax, example:

{{#if with_jwt}}
const jwt = require('jsonwebtoken');
{{/if}}

Available sources:

For more sources see SOURCES.

You can also list available sources by typing:

reframe --list
Commit count: 127

cargo fmt