1
0
Fork 0
mirror of https://github.com/Luzifer/korvike.git synced 2024-12-20 11:11:19 +00:00
korvike takes a Go template and executes it
Find a file
Knut Ahlers e8a8b2f83f
Breaking: Add sprig functions, replace some internal ones
Breaking changes:

- Remove function `b64decode`, use `b64dec`
- Remove function `b64encode`, use `b64enc`
- Remove default from `env`, use `env "MYVAR" | default "..."`
- Remove function `hash`, use `sha1sum` / `sha256sum` / `sha512sum`
- Function `now` returns `time.Time`, use `now | date "[format]"`
- Function `split` now has reversed parameters `split <sep> <str>`

Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-02-28 23:54:18 +01:00
functions Breaking: Add sprig functions, replace some internal ones 2024-02-28 23:54:18 +01:00
.gitignore add initial version 2016-07-31 21:13:01 +02:00
.repo-runner.yaml CI: Disable draft publishing for releases 2021-08-30 15:57:39 +02:00
go.mod Breaking: Add sprig functions, replace some internal ones 2024-02-28 23:54:18 +01:00
go.sum Breaking: Add sprig functions, replace some internal ones 2024-02-28 23:54:18 +01:00
History.md prepare release v0.13.0 2022-03-30 21:23:44 +02:00
LICENSE Fix Copyright line in LICENSE 2018-05-31 12:51:03 +02:00
main.go Breaking: Add sprig functions, replace some internal ones 2024-02-28 23:54:18 +01:00
Makefile Fix tests 2020-04-08 22:42:41 +02:00
README.md Add basic string manipulation join and split 2022-03-30 21:10:35 +02:00

Go Report Card

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

  • {{ .<variable name> }}
    Take key-value pairs from the CLI and replace them inside the template
    $ echo "{{ .foo }}" | korvike -v foo=bar
    bar
    
  • {{ b64decode <string> }}
    Decodes the string with base64 StdEncoding
    $ echo '{{ b64decode "SGVsbG8gV29ybGQ=" }}' | korvike
    Hello World
    
  • {{ b64encode <string> }}
    Encodes the string with base64 StdEncoding
    $ echo '{{ b64encode "Hello World" }}' | korvike
    SGVsbG8gV29ybGQ=
    
  • {{ env <variable name> [default value] }}
    Read environment variables and replace them inside the template
    $ export FOO=bar
    $ echo '{{ env "FOO" }}' | korvike
    bar
    
  • {{ file <file name> [default value] }}
    Read a file and place it inside the template
    $ echo "Hello World" > hello
    $ echo '{{ file "hello" }}' | korvike
    Hello World
    
  • {{ hash <algo> <string> }}
    Hash string with given algorithm (supported algorithms: md5, sha1, sha256, sha512)
    $ echo '{{ hash "sha256" "this is a test" }}' | korvike
    2e99758548972a8e8822ad47fa1017ff72f06f3ff6a016851f45c398732bc50c
    
  • {{ join <string> <delim> }}
    Joins the given slice of strings with given delimiter.
    $ echo '{{ join (split "a,b,c" ",") "|" }}' | korvike
    a|b|c
    
  • {{ markdown <source> }}
    Format the source using a markdown parser
    $ echo '{{ markdown "# headline" }}' | korvike
    <h1>headline</h1>
    
  • {{ now <format string> }}
    Format the current date into the template (uses Go time format)
    $ echo '{{ now "2006-01-02 15:04:05" }}' | korvike
    2017-04-17 16:27:34
    
  • {{ split <string> <sep> }}
    Splits the given string by given separator.
    $ echo '{{ range (split "a,b,c" ",") }}{{ . }} {{ end }}' | korvike
    a b c
    
  • {{ tplexec (file "my.tpl") }}
    Execute the given template with the same function set and variables as the parent template.
    $ export FOO=bar
    $ echo '{{ env "FOO" }}' >my.tpl
    $ echo '{{ tplexec (file "my.tpl") }}' | korvike
    bar
    
  • {{ urlescape <input string> }}
    Do an URL escape to use the input string inside an query parameter in an URL
    $ echo '{{ urlescape "Hellö Wörld@Golang" }}' | korvike 
    Hell%C3%B6+W%C3%B6rld%40Golang
    
  • {{ vault <path> <key> [default value] }}
    Read a key from Vault using VAULT_ADDR and VAULT_TOKEN environment variables (or ~/.vault-token file) for authentication.
    $ vault write secret/test foo=bar
    $ echo '{{ vault "secret/test" "foo" }}' | korvike
    bar