diff --git a/providers/os/os.go b/providers/os/os.go index 859a421..7ef5849 100644 --- a/providers/os/os.go +++ b/providers/os/os.go @@ -29,6 +29,8 @@ func (this *Provider) FuncMap () template.FuncMap { return template.FuncMap { "env": funcEnv, "fileExists": funcFileExists, + "isFile": funcIsFile, + "isDir": funcIsDir, "statFile": funcStatFile, "readFile": funcReadFile, "readDir": funcReadDir, @@ -47,6 +49,18 @@ func funcFileExists (name string) (bool) { return err == nil } +func funcIsFile (name string) (bool, error) { + info, err := os.Stat(name) + if err != nil { return false, err } + return info.Mode().IsRegular(), nil +} + +func funcIsDir (name string) (bool, error) { + info, err := os.Stat(name) + if err != nil { return false, err } + return info.IsDir(), nil +} + func funcStatFile (name string) (FileInfo, error) { info, err := os.Stat(name) if err != nil { return FileInfo { }, err }