1
0
Fork 0
mirror of https://github.com/Luzifer/korvike.git synced 2024-11-08 15:30:05 +00:00
korvike takes a Go template and executes it
Find a file
2024-02-29 18:05:49 +01:00
.github/workflows Replace old build-system 2024-02-29 12:59:50 +01:00
ci Replace old build-system 2024-02-29 12:59:50 +01:00
functions Remove default values for file and vault 2024-02-29 17:55:51 +01:00
.gitignore add initial version 2016-07-31 21:13:01 +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 v1.0.0 2024-02-29 18:05:49 +01: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 Replace old build-system 2024-02-29 12:59:50 +01:00
README.md prepare release v1.0.0 2024-02-29 18:05:49 +01: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

Starting with v1.0.0 Korvike is based on the sprig functions collection with some additions:

  • {{ .<variable name> }}
    Take key-value pairs from the CLI and replace them inside the template
    $ echo "{{ .foo }}" | korvike -v foo=bar
    bar
    
  • {{ file <file name> }} / {{ mustFile <file name> }}
    Read a file and place it inside the template, file returns an empty string on error, mustFile an error
    $ echo "Hello World" > hello
    $ echo '{{ file "hello" }}' | korvike
    Hello World
    
  • {{ markdown <source> }}
    Format the source using a markdown parser
    $ echo '{{ markdown "# headline" }}' | korvike
    <h1>headline</h1>
    
  • {{ 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> }} / {{ mustVault <path> <key> }}
    Read a key from Vault using VAULT_ADDR and VAULT_TOKEN environment variables (or ~/.vault-token file) for authentication. vault returns an empty string on error, mustVault an error
    $ vault write secret/test foo=bar
    $ echo '{{ vault "secret/test" "foo" }}' | korvike
    bar