github.com/hairyhenderson/gomplate/v3@v3.11.7/funcs/path.go (about) 1 package funcs 2 3 import ( 4 "context" 5 "path" 6 7 "github.com/hairyhenderson/gomplate/v3/conv" 8 ) 9 10 // PathNS - the Path namespace 11 // Deprecated: don't use 12 func PathNS() *PathFuncs { 13 return &PathFuncs{} 14 } 15 16 // AddPathFuncs - 17 // Deprecated: use CreatePathFuncs instead 18 func AddPathFuncs(f map[string]interface{}) { 19 for k, v := range CreatePathFuncs(context.Background()) { 20 f[k] = v 21 } 22 } 23 24 // CreatePathFuncs - 25 func CreatePathFuncs(ctx context.Context) map[string]interface{} { 26 ns := &PathFuncs{ctx} 27 return map[string]interface{}{ 28 "path": func() interface{} { return ns }, 29 } 30 } 31 32 // PathFuncs - 33 type PathFuncs struct { 34 ctx context.Context 35 } 36 37 // Base - 38 func (PathFuncs) Base(in interface{}) string { 39 return path.Base(conv.ToString(in)) 40 } 41 42 // Clean - 43 func (PathFuncs) Clean(in interface{}) string { 44 return path.Clean(conv.ToString(in)) 45 } 46 47 // Dir - 48 func (PathFuncs) Dir(in interface{}) string { 49 return path.Dir(conv.ToString(in)) 50 } 51 52 // Ext - 53 func (PathFuncs) Ext(in interface{}) string { 54 return path.Ext(conv.ToString(in)) 55 } 56 57 // IsAbs - 58 func (PathFuncs) IsAbs(in interface{}) bool { 59 return path.IsAbs(conv.ToString(in)) 60 } 61 62 // Join - 63 func (PathFuncs) Join(elem ...interface{}) string { 64 s := conv.ToStrings(elem...) 65 return path.Join(s...) 66 } 67 68 // Match - 69 func (PathFuncs) Match(pattern, name interface{}) (matched bool, err error) { 70 return path.Match(conv.ToString(pattern), conv.ToString(name)) 71 } 72 73 // Split - 74 func (PathFuncs) Split(in interface{}) []string { 75 dir, file := path.Split(conv.ToString(in)) 76 return []string{dir, file} 77 }