Skip to content

Layout

Layout focuses on structured arrangement of pretty version data.

To define the layout, use Go templating. You can use also the version package's built-in functions. All helper functions defined by the Sprig template library are also available.

These are the fields that you can access in your Go template definition:

Key Description
.Version Binary version
.NewVersion New binary version taken from the latest GitHub release
.ReleaseURL GitHub release URL

Go

Tip

Want to try? See the custom layout example!

Example usage:

var forBoxLayoutGoTpl = heredoc.Doc(`
A new release is available: {{ .Version }} → {{ .NewVersion | Green }}
{{ .ReleaseURL  | Underline | Blue }}`)

func main() {
    upgradeOpts := []upgrade.Options{
        upgrade.WithLayout(&style.Layout{
            GoTemplate: forBoxLayoutGoTpl,
        }),
        upgrade.WithPostRenderHook(func(body string, isSmartTerminal bool) (string, error) {
            return body + "\n footer", nil
        }),
    }

    notice := upgrade.NewGitHubDetector("mszostok", "codeowners-validator", upgradeOpts...)
    err := notice.PrintIfFoundGreater(os.Stderr, "0.5.4")
    if err != nil {
        log.Fatal(err)
    }
}
Back to top