From 97a48e35bb4bb579843833a8f118124c2cf2c110 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Sat, 23 May 2015 15:44:54 -0700 Subject: [PATCH] template: ParseFile --- template/parse.go | 13 +++++++++++++ template/parse_test.go | 9 +-------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/template/parse.go b/template/parse.go index c0e21b1c4..a46adc594 100644 --- a/template/parse.go +++ b/template/parse.go @@ -4,6 +4,7 @@ import ( "encoding/json" "fmt" "io" + "os" "sort" "github.com/hashicorp/go-multierror" @@ -290,3 +291,15 @@ func Parse(r io.Reader) (*Template, error) { // Return the template parsed from the raw structure return rawTpl.Template() } + +// ParseFile is the same as Parse but is a helper to automatically open +// a file for parsing. +func ParseFile(path string) (*Template, error) { + f, err := os.Open(path) + if err != nil { + return nil, err + } + defer f.Close() + + return Parse(f) +} diff --git a/template/parse_test.go b/template/parse_test.go index 023c3d537..2cca68b88 100644 --- a/template/parse_test.go +++ b/template/parse_test.go @@ -1,7 +1,6 @@ package template import ( - "os" "reflect" "testing" "time" @@ -272,13 +271,7 @@ func TestParse(t *testing.T) { } for _, tc := range cases { - f, err := os.Open(fixtureDir(tc.File)) - if err != nil { - t.Fatalf("err: %s", err) - } - - tpl, err := Parse(f) - f.Close() + tpl, err := ParseFile(fixtureDir(tc.File)) if (err != nil) != tc.Err { t.Fatalf("err: %s", err) }