~sircmpwn/aerc

6bd6690d80931062210d18f3e9855074707b03a8 — Reto Brunner 1 year, 6 months ago 434eaa1
templates: add version func

Fixes #316
3 files changed, 19 insertions(+), 0 deletions(-)

M aerc.go
M doc/aerc-templates.7.scd
M lib/templates/template.go
M aerc.go => aerc.go +4 -0
@@ 19,6 19,7 @@ import (
	"git.sr.ht/~sircmpwn/aerc/commands/terminal"
	"git.sr.ht/~sircmpwn/aerc/config"
	"git.sr.ht/~sircmpwn/aerc/lib"
	"git.sr.ht/~sircmpwn/aerc/lib/templates"
	libui "git.sr.ht/~sircmpwn/aerc/lib/ui"
	"git.sr.ht/~sircmpwn/aerc/widgets"
)


@@ 179,6 180,9 @@ func main() {
		as.OnMailto = aerc.Mailto
	}

	// set the aerc version so that we can use it in the template funcs
	templates.SetVersion(Version)

	close(initDone)

	for !ui.ShouldExit() {

M doc/aerc-templates.7.scd => doc/aerc-templates.7.scd +7 -0
@@ 125,6 125,13 @@ aerc provides the following additional functions:
	{{dateFormat .Date "Mon Jan 2 15:04:05 -0700 MST 2006"}}
	```

*version*
	Returns the version of aerc, which can be useful for things like X-Mailer.

	```
	X-Mailer: aerc {{version}}
	```

*Function chaining*
	All of the template functions can be chained together if needed.


M lib/templates/template.go => lib/templates/template.go +8 -0
@@ 16,6 16,13 @@ import (
	"github.com/mitchellh/go-homedir"
)

var version string

//SetVersion initializes the aerc version displayed in template functions
func SetVersion(v string) {
	version = v
}

type TemplateData struct {
	To      []*mail.Address
	Cc      []*mail.Address


@@ 168,6 175,7 @@ var templateFuncs = template.FuncMap{
	"dateFormat": time.Time.Format,
	"toLocal":    toLocal,
	"exec":       cmd,
	"version":    func() string { return version },
}

func findTemplate(templateName string, templateDirs []string) (string, error) {