crispr
is a CLI tool allowing to scaffold a project from a template with a .crispr.json
configuration file.
The template uses tokens that need to be replaced per scaffolded project (e.g. {{REPO_NAME}}
), which are set in the configuration file as either user replaceable or with predetermined values.
crispr
reads the configuration, asks the user for any needed values and makes the replacements as needed, showing a diff in the process.
crispr [FLAGS] [PATH]
<PATH>
The path to runcrispr
('.'
by default)
-
-c, --config
The path to an alternative configuration file ('.crispr.json'
by default) -
-d, --dry
Dry run - prints output without making changes -
-h, --help
Prints help information -
-V, --version
Prints version information
crispr
uses a JSON configuration file detailing the tokens to be replaced.
replacements
- a map (HashMap<String, String>
) of replacement tokens to valuesuser_replacements
- an array (Vec<String>
) of replacements for which the user will be asked to supply a value
{
"replacements": {
"{{YEAR}}": "2021"
},
"user_replacements": ["{{REPO_NAME}}"]
}
{
"replacements": {},
"user_replacements": []
}
crispr
takes some inspiration and ideas from Ruplacer but does not intend to replace (pun may be intended) Ruplacer as the use case and goal are different.
crispr
uses the following dependencies:
clap
(Apache 2.0)difference
(MIT)colored
(MPL)ignore
(Unlicenced)serde
(Apache 2.0)serde_json
(Apache 2.0)