Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // FuncMap contains the functions exposed to templating engine. FuncMap = template.FuncMap{ "env": os.Getenv, "time": CurrentTimeInFmt, "hostname": func() string { return os.Getenv("HOSTNAME") }, "username": func() string { t, err := user.Current() if err != nil { return "Unknown" } return t.Name }, "toBinary": func(s string) string { n, err := strconv.Atoi(s) if err != nil { return s } return fmt.Sprintf("%b", n) }, "formatFilesize": func(value interface{}) string { var size float64 v := reflect.ValueOf(value) switch v.Kind() { case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: size = float64(v.Int()) case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: size = float64(v.Uint()) case reflect.Float32, reflect.Float64: size = v.Float() default: return "" } var KB float64 = 1 << 10 var MB float64 = 1 << 20 var GB float64 = 1 << 30 var TB float64 = 1 << 40 var PB float64 = 1 << 50 filesizeFormat := func(filesize float64, suffix string) string { return strings.Replace(fmt.Sprintf("%.1f %s", filesize, suffix), ".0", "", -1) } var result string if size < KB { result = filesizeFormat(size, "bytes") } else if size < MB { result = filesizeFormat(size/KB, "KB") } else if size < GB { result = filesizeFormat(size/MB, "MB") } else if size < TB { result = filesizeFormat(size/GB, "GB") } else if size < PB { result = filesizeFormat(size/TB, "TB") } else { result = filesizeFormat(size/PB, "PB") } return result }, "toLower": strings.ToLower, "toUpper": strings.ToUpper, "toTitle": strings.ToTitle, "title": strings.Title, "trimSpace": strings.TrimSpace, "trimPrefix": strings.TrimPrefix, "trimSuffix": strings.TrimSuffix, "repeat": strings.Repeat, "split": strings.Split, "replaceAll": strings.ReplaceAll, } // Options contain the default options for the template execution. Options = []string{ "missingkey=invalid", } )
Functions ¶
func CurrentTimeInFmt ¶
CurrentTimeInFmt returns the current time in the given format. See time.Time.Format for more details on the format string.
Types ¶
type Interface ¶
type Interface interface { // Executes the template on the given target directory path. Execute(string) error // If used, the template will execute using default values. UseDefaultValues() // If used, the template will execute without prompts using provided values. UseValues(path string) error // Returns the metadata of the template. Info() Metadata }
Interface is contains the behavior of boilr templates.
type JSONTime ¶
JSONTime is time.Time with JSON marshaling and unmarshaling implementations.
func (*JSONTime) MarshalJSON ¶
MarshalJSON marshals JSONTime to JSON.
func (*JSONTime) UnmarshalJSON ¶
UnmarshalJSON unmarshals JSON to JSONTime.
Click to show internal directories.
Click to hide internal directories.