Commit a4b5e08f authored by Mitchell Hashimoto's avatar Mitchell Hashimoto

template/interpolate: upper/lower

parent 7659a914
...@@ -5,8 +5,11 @@ import ( ...@@ -5,8 +5,11 @@ import (
"fmt" "fmt"
"os" "os"
"strconv" "strconv"
"strings"
"text/template" "text/template"
"time" "time"
"github.com/mitchellh/packer/common/uuid"
) )
// InitTime is the UTC time when this package was initialized. It is // InitTime is the UTC time when this package was initialized. It is
...@@ -24,7 +27,11 @@ var FuncGens = map[string]FuncGenerator{ ...@@ -24,7 +27,11 @@ var FuncGens = map[string]FuncGenerator{
"isotime": funcGenIsotime, "isotime": funcGenIsotime,
"pwd": funcGenPwd, "pwd": funcGenPwd,
"timestamp": funcGenTimestamp, "timestamp": funcGenTimestamp,
"uuid": funcGenUuid,
"user": funcGenUser, "user": funcGenUser,
"upper": funcGenPrimitive(strings.ToUpper),
"lower": funcGenPrimitive(strings.ToLower),
} }
// FuncGenerator is a function that given a context generates a template // FuncGenerator is a function that given a context generates a template
...@@ -68,6 +75,12 @@ func funcGenIsotime(ctx *Context) interface{} { ...@@ -68,6 +75,12 @@ func funcGenIsotime(ctx *Context) interface{} {
} }
} }
func funcGenPrimitive(value interface{}) FuncGenerator {
return func(ctx *Context) interface{} {
return value
}
}
func funcGenPwd(ctx *Context) interface{} { func funcGenPwd(ctx *Context) interface{} {
return func() (string, error) { return func() (string, error) {
return os.Getwd() return os.Getwd()
...@@ -85,3 +98,9 @@ func funcGenUser(ctx *Context) interface{} { ...@@ -85,3 +98,9 @@ func funcGenUser(ctx *Context) interface{} {
return "" return ""
} }
} }
func funcGenUuid(ctx *Context) interface{} {
return func() string {
return uuid.TimeOrderedUUID()
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment