90 lines
1.4 KiB
Markdown
90 lines
1.4 KiB
Markdown
# coin
|
|
|
|
transforms a template string to its refined version by substituting its placeholders with concrete values; hence it can be used as a very basic template engine
|
|
|
|
|
|
## Building
|
|
|
|
### Requirements
|
|
|
|
- shell interpreter
|
|
|
|
|
|
### Instructions
|
|
|
|
- execute `tools/build`
|
|
|
|
|
|
## Installation
|
|
|
|
### Requirements
|
|
|
|
- shell interpreter
|
|
|
|
|
|
### Instructions
|
|
|
|
- (as `root`) execute `tools/install`
|
|
|
|
|
|
## Usage
|
|
|
|
### Requirements
|
|
|
|
- Python 3 interpreter
|
|
|
|
|
|
### Explanation
|
|
|
|
- see `coin -h`
|
|
|
|
|
|
### Examples
|
|
|
|
#### basic
|
|
|
|
```sh
|
|
echo '{{flowers}} are {{color}}' | coin -a 'flowers:roses' -a 'color:red'
|
|
|
|
# roses are red
|
|
```
|
|
|
|
The same result can be produced by using multiple `coin` calls:
|
|
|
|
```sh
|
|
echo '{{flowers}} are {{color}}' | coin -a 'flowers:roses' | coin -a 'color:red'
|
|
|
|
# roses are red
|
|
```
|
|
|
|
In some contextes curly brackets might be reserved or not available for other reasons. This can be mitigated by using different placeholder indicators:
|
|
|
|
```sh
|
|
echo '<<flowers>> are <<color>>' | coin -o '<<' -c '>>' -a 'flowers:roses' -a 'color:red'
|
|
|
|
# roses are red
|
|
```
|
|
|
|
|
|
#### file arguments
|
|
|
|
```sh
|
|
echo -n "cornflowers" > /tmp/flowers.txt
|
|
echo -n "blue" > /tmp/color.txt
|
|
echo '{{flowers}} are {{color}}' | coin -a 'flowers:@/tmp/flowers.txt' -a 'color:@/tmp/color.txt'
|
|
|
|
# cornflowers are blue
|
|
```
|
|
|
|
|
|
#### data file
|
|
|
|
```sh
|
|
echo -e "flowers: daffodills\ncolor: yellow" > /tmp/data.yaml
|
|
echo '{{flowers}} are {{color}}' | coin -d /tmp/data.yaml
|
|
|
|
# daffodills are yellow
|
|
```
|
|
|
|
|