Skip to content

belitre/gotpl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

cfded0e · Mar 5, 2020

History

23 Commits
Mar 4, 2019
Jan 16, 2020
Mar 4, 2019
Jan 20, 2019
Jan 16, 2020
Jan 16, 2020
Jan 16, 2020
Mar 5, 2020
Apr 21, 2018
Apr 22, 2018

Repository files navigation

gotpl - CLI tool for Golang templates

Command line tool that compiles Golang templates with values from YAML and JSON files.

Supports Sprig functions.

Inspired by Helm

Started as a fork from github.com/tsg/gotpl but this project looks abandoned

Added some things from Helm, like the way they read values, and some functions for the templates.

And some improvements by myself :)

Install

You can download gotpl binaries for windows, linux and mac from here: https://github.com/belitre/gotpl/releases

Usage

Say you have a template.tpl file like this:

    {{.first_name}} {{.last_name}} is {{.age}} years old.

and a user.yml YAML file like this one:

    first_name: Max
    last_name: Mustermann
    age: 30

You can compile the template like this:

    gotpl template.tpl -f user.yml

You can compile multiple templates at the same time like this (warning: gotpl will generate a single ouput for all the templates!):

    gotpl template.tpl other_template.tpl -f user.yml

You can compile templates and directories, includes subdirectories (warning: gotpl will generate a single ouput for all the templates!):

    gotpl template.tpl /templates/directory -f user.yml

You can set values though the command line too:

    gotpl template.tpl -f user.yaml --set age=40

You can set an output folder:

    gotpl template.tpl /templates/directory -f user.yml --set age=40 -o /tplresult

When using -ogotpl will generate files with the same names as the templates, so if the template file is template.tpl gotpl will generate $OUPUT_FOLDER/template.tpl. If multiple files with the same name are provided then gotpl will override these files and will keep only the last one!

You can get help about how to use the command running:

    gotpl -h

Development

  • Requires `go 1.13.1``