Skip to content

Latest commit

 

History

History
65 lines (47 loc) · 1.44 KB

README.md

File metadata and controls

65 lines (47 loc) · 1.44 KB

TWIT

TWIT is a simple CLI Tool for WrIting Templates. It is really just a wrapper Go's text and html templates implementation which allows for command line usage.

Usage

Templates

Templates are written in the standard Go template format.

Filters

Filter support comes from the leekchan/gtf package.

Parameters

TWIT accepts parameters for the template as either a YAML file or as a JSON string.

Example

For our example, let's image that we needed to write an Apache vhosts configuration file.

First we create a template. We'll call it vhosts.conf.tpl:

Listen {{ .port }}

ServerName {{ .server_name }}
DocumentRoot "{{ .document_root }}"

{{ range $host := .hosts }}
    <VirtualHost {{ $host.ip }}>
        DocumentRoot "{{ $host.document_root }}"
        ServerName {{ $host.server_name }}
    </VirtualHost>
{{ end }}

Then we will create a YAML encoded file to hold the parameters. We'll call it vhosts.yml:

port:          80
server_name:   server.company.com
document_root: /srv/main
hosts:
  - ip:            172.20.30.1
    document_root: /srv/website1
    server_name:   site1.company.com
  - ip:            172.20.30.2
    document_root: /srv/website2
    server_name:   site2.company.com

Generate the Apache configuration with TWIT:

$ twit vhosts.conf.tpl /etc/apache2/sites-available/vhosts.conf -p vhosts.yml