gotemplate

package module
v0.4.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 4, 2022 License: Apache-2.0 Imports: 1 Imported by: 0

README

go/template

SIT CI Semgrep Go Report Card

go/template provides a blueprint for production-ready Go project layouts.

go/template logo

Credit to Renée French for the Go Gopher logo
Credit to Go Authors for the official Go logo

Batteries included

  • Makefile for most common tasks
  • optimized Dockerfile
  • golangci-lint default configuration
  • pre-push git hook to ensure no linting issues
  • gRPC support
  • folder structure based on github.com/golang-standards/project-layout
  • enforced default packages
    • go.uber.org/zap for logging
    • go.uber.org/automaxprocs to be safe in container environments (see this article for more information)

Usage

Installation
From source

If you have Go 1.16+, you can directly install by running:

go install github.com/schwarzit/go-template/cmd/gt@latest

Based on your go configuration the go/template binary can be found in $GOPATH/bin or $HOME/go/bin in case $GOPATH is not set. Make sure to add the respective directory to your $PATH. For more information see go docs for further information. Run go env to view your current configuration.

From the released binaries

Download the desired version for your operating system and processor architecture from the go-template releases page. Make the file executable and place it in a directory available in your $PATH.

nix

go-template also provides a flake.nix to install it via nix package manager.

You can also try out go-template without installing:

nix run github:schwarzit/go-template
Preconditions

go/template's gt CLI requires at least the following executables on $PATH to run succesfully:

  • Go >= 1.15
  • Git

These are used at the end of gt new's execution to initialize Git and Go modules in the newly created project repository.

Initialize your repo from the template

asciicast

Use the template to generate your repo:

gt new

Initialize the project:

cd <your project>
make all

Options

To get an overview of all options that can be set for the template you can take a look at the options docs, run the CLI or check out the testing example values file.

Maintainers

Name Email
@brumhard code@brumhard.com
@linuxluigi steffen.exler@mail.schwarz
@danielzwink daniel.zwink@mail.schwarz

Contribution

If you want to contribute to go/template please have a look at our contribution guidelines.

Releasing

The release process is described in the release docs.

Documentation

Overview

Code generated by dotembed. DO NOT EDIT.

Index

Constants

View Source
const Key = "_template"

Variables

Functions

This section is empty.

Types

This section is empty.

Directories

Path Synopsis
_template
cmd
gt
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL