2016-07-31 20:17:50 +00:00
|
|
|
[![Go Report Card](https://goreportcard.com/badge/github.com/Luzifer/korvike)](https://goreportcard.com/report/github.com/Luzifer/korvike)
|
2018-05-31 10:51:50 +00:00
|
|
|
![](https://badges.fyi/github/license/Luzifer/korvike)
|
|
|
|
![](https://badges.fyi/github/downloads/Luzifer/korvike)
|
|
|
|
![](https://badges.fyi/github/latest-release/Luzifer/korvike)
|
2016-07-31 20:17:50 +00:00
|
|
|
|
2016-07-31 19:19:17 +00:00
|
|
|
# Luzifer / korvike
|
|
|
|
|
|
|
|
`korvike` is the finnish translation to the word "replacer" and that is what it does: It takes a Go template and executes it.
|
|
|
|
|
|
|
|
## Available functions
|
|
|
|
|
2017-04-17 18:43:43 +00:00
|
|
|
- `{{ .<variable name> }}`
|
|
|
|
Take key-value pairs from the CLI and replace them inside the template
|
2018-05-31 10:54:58 +00:00
|
|
|
```console
|
|
|
|
$ echo "{{ .foo }}" | korvike -v foo=bar
|
2017-04-17 18:43:43 +00:00
|
|
|
bar
|
|
|
|
```
|
2021-08-30 13:55:52 +00:00
|
|
|
- `{{ b64decode <string> }}`
|
|
|
|
Decodes the string with base64 [StdEncoding](https://golang.org/pkg/encoding/base64/#pkg-variables)
|
|
|
|
```console
|
|
|
|
$ echo '{{ b64decode "SGVsbG8gV29ybGQ=" }}' | korvike
|
|
|
|
Hello World
|
|
|
|
```
|
2018-05-31 10:50:34 +00:00
|
|
|
- `{{ b64encode <string> }}`
|
|
|
|
Encodes the string with base64 [StdEncoding](https://golang.org/pkg/encoding/base64/#pkg-variables)
|
|
|
|
```console
|
2018-05-31 10:54:58 +00:00
|
|
|
$ echo '{{ b64encode "Hello World" }}' | korvike
|
2018-05-31 10:50:34 +00:00
|
|
|
SGVsbG8gV29ybGQ=
|
|
|
|
```
|
2017-04-17 18:43:43 +00:00
|
|
|
- `{{ env <variable name> [default value] }}`
|
|
|
|
Read environment variables and replace them inside the template
|
2018-05-31 10:54:58 +00:00
|
|
|
```console
|
|
|
|
$ export FOO=bar
|
|
|
|
$ echo '{{ env "FOO" }}' | korvike
|
2017-04-17 18:43:43 +00:00
|
|
|
bar
|
|
|
|
```
|
|
|
|
- `{{ file <file name> [default value] }}`
|
|
|
|
Read a file and place it inside the template
|
2018-05-31 10:54:58 +00:00
|
|
|
```console
|
|
|
|
$ echo "Hello World" > hello
|
|
|
|
$ echo '{{ file "hello" }}' | korvike
|
2017-04-17 18:43:43 +00:00
|
|
|
Hello World
|
|
|
|
```
|
2021-04-11 21:45:58 +00:00
|
|
|
- `{{ hash <algo> <string> }}`
|
|
|
|
Hash string with given algorithm (supported algorithms: md5, sha1, sha256, sha512)
|
|
|
|
```console
|
|
|
|
$ echo '{{ hash "sha256" "this is a test" }}' | korvike
|
|
|
|
2e99758548972a8e8822ad47fa1017ff72f06f3ff6a016851f45c398732bc50c
|
|
|
|
```
|
2020-04-08 20:38:16 +00:00
|
|
|
- `{{ markdown <source> }}`
|
|
|
|
Format the source using a markdown parser
|
|
|
|
```console
|
2021-04-11 21:45:58 +00:00
|
|
|
$ echo '{{ markdown "# headline" }}' | korvike
|
2020-04-08 20:38:16 +00:00
|
|
|
<h1>headline</h1>
|
|
|
|
```
|
2017-04-17 18:43:43 +00:00
|
|
|
- `{{ now <format string> }}`
|
|
|
|
Format the current date into the template (uses [Go time format](https://golang.org/pkg/time/#Time.Format))
|
2018-05-31 10:54:58 +00:00
|
|
|
```console
|
|
|
|
$ echo '{{ now "2006-01-02 15:04:05" }}' | korvike
|
2017-04-17 18:43:43 +00:00
|
|
|
2017-04-17 16:27:34
|
|
|
|
```
|
2021-03-22 15:22:23 +00:00
|
|
|
- `{{ tplexec (file "my.tpl") }}`
|
|
|
|
Execute the given template with the same function set and variables as the parent template.
|
|
|
|
```console
|
|
|
|
$ export FOO=bar
|
|
|
|
$ echo '{{ env "FOO" }}' >my.tpl
|
|
|
|
$ echo '{{ tplexec (file "my.tpl") }}' | korvike
|
|
|
|
bar
|
|
|
|
```
|
2017-06-20 09:24:02 +00:00
|
|
|
- `{{ vault <path> <key> [default value] }}`
|
|
|
|
Read a key from Vault using `VAULT_ADDR` and `VAULT_TOKEN` environment variables (or `~/.vault-token` file) for authentication.
|
2018-05-31 10:54:58 +00:00
|
|
|
```console
|
|
|
|
$ vault write secret/test foo=bar
|
|
|
|
$ echo '{{ vault "secret/test" "foo" }}' | korvike
|
2017-06-20 09:24:02 +00:00
|
|
|
bar
|
|
|
|
```
|