func (c *Car) GetSeparatorTemplate() string {
	return os.Getenv("BULLETTRAIN_CAR_USER_SEPARATOR_TEMPLATE")
}
GetSeparatorTemplate overrides the template of the right hand side
separator through ENV variable.
package carUser
import (
	"bytes"
	"log"
	"os"
	"os/user"
	"text/template"
	"github.com/bullettrain-sh/bullettrain-go-core/src/ansi"
)
const (
	carPaint    = "black:white"
	carTemplate = `{{.User | c}}`
)
type Car struct {
	paint string
}
func (c *Car) GetPaint() string {
	if c.paint = os.Getenv("BULLETTRAIN_CAR_USER_PAINT"); c.paint == "" {
		c.paint = carPaint
	}
	return c.paint
}
func (c *Car) CanShow() bool {
	s := true
	if e := os.Getenv("BULLETTRAIN_CAR_USER_SHOW"); e == "false" {
		s = false
	}
	return s
}
func (c *Car) Render(out chan<- string) {
	defer close(out)
	var username string
	u, e := user.Current()
	if e == nil {
		username = u.Username
	}
	var s string
	if s = os.Getenv("BULLETTRAIN_CAR_USER_TEMPLATE"); s == "" {
		s = carTemplate
	}
	funcMap := template.FuncMap{
		"c": func(t string) string { return ansi.Color(t, c.GetPaint()) },
	}
	tpl := template.Must(template.New("user").Funcs(funcMap).Parse(s))
	data := struct{ User string }{User: username}
	fromTpl := new(bytes.Buffer)
	err := tpl.Execute(fromTpl, data)
	if err != nil {
		log.Fatalf("Can't generate the user template: %s", err.Error())
	}
	out <- fromTpl.String()
}
func (c *Car) GetSeparatorPaint() string {
	return os.Getenv("BULLETTRAIN_CAR_USER_SEPARATOR_PAINT")
}
func (c *Car) GetSeparatorSymbol() string {
	return os.Getenv("BULLETTRAIN_CAR_USER_SEPARATOR_SYMBOL")
}