Sign inSign up

webhippie/templater

By webhippie

Updated about 1 hour ago

Template processor for env variables

Image
0

10K+

webhippie/templater repository overview

Templater

General Workflow Join the Matrix chat at https://matrix.to/#/#webhippie:matrix.org Codacy Badge Go Reference Go Report Card GitHub Repo Hosted By: Cloudsmith

Templater is used by our docker containers to provide a functionality for clean templating based on the Golang text/template package. The variables are always provided through environment variables. Before we integrated templater every template has been handled by envsubst which doesn't provide any control structures while Golang templates got this builtin.

Install

You can download prebuilt binaries from the GitHub releases or from our download site. Besides that we also prepared repositories for DEB and RPM packages which can be found at Cloudsmith. If you prefer to use containers you could use our images published on GHCR, Docker Hub or Quay. If you need further guidance how to install this take a look at our documentation.

Package repository hosting is graciously provided by Cloudsmith. Cloudsmith is the only fully hosted, cloud-native, universal package management solution, that enables your organization to create, store and share packages in any format, to any place, with total confidence.

Prerequisites

We use mise to manage all required tools and their versions. Install it by following the official installation instructions, then run the following commands inside the repository to activate mise and install all tools defined in mise.toml:

mise trust
mise install

Build

Since all required commands ar part of our go-task taskfile the commands you got to execute are quite simple:

git clone https://github.com/webhippie/templater.git
cd templater

task build
./bin/templater -h

Development

To start developing on this project you have to execute only a few commands in multiple terminal tabs or windows:

task watch

After that you can simply execute the tool via bin/templater -h. Generally it supports hot reloading which means the binary gets automatically recompiled on code changes.

Security

If you find a security issue please contact [email protected] first.

Contributing

Generally we are following conventional commits when we apply changes. That way we are able to generate proper changelogs for every release. Please use always pull requests to integrate new functionalities or to fix issues.

For the release process we are following semantic versioning which clearly indicates if a new version just resolves bugs, includes new features or even includes breaking changes.

After installing the tools via mise install as described above set up the pre-commit hooks so they run automatically on every commit:

prek install --hook-type pre-commit --hook-type commit-msg

prek is managed by mise and will be available after mise install.

If you have changed something on the source you should simply commit following the mentioned conventions:

git checkout -b feat/new-feature
git add --all
git commit -m 'feat: added awesome new feature'
git push --set-upstream origin feat/new-feature

After pushing your changes into the Git repository you should create a pull request on GitHub. If the pull request have been merged and everything built fine it will also create automatically a new release at least once a week.

Authors

License

Apache-2.0

Copyright (c) 2018 Thomas Boerger <[email protected]>

Tag summary

Content type

Image

Digest

sha256:3480ae911

Size

7.4 MB

Last updated

about 1 hour ago

docker pull webhippie/templater