summaryrefslogtreecommitdiff
path: root/template.go
diff options
context:
space:
mode:
authorDave Henderson <dhenderson@gmail.com>2024-01-22 09:06:33 -0500
committerGitHub <noreply@github.com>2024-01-22 09:06:33 -0500
commit0ac3aa24bf2e4ada9c26fd9ef5b7f0ae8c6b6cfb (patch)
tree9a95f27eec1e77ef8bfefcb2810f7e41681627a5 /template.go
parentf837061f953bda1e8b42095c6dba0496de11d993 (diff)
Use go-fsimpl to read from datasources (#1336)
* Use go-fsimpl to read from datasources Signed-off-by: Dave Henderson <dhenderson@gmail.com> * trying to fix windows bug Signed-off-by: Dave Henderson <dhenderson@gmail.com> * attempts to fix some of the path madness Signed-off-by: Dave Henderson <dhenderson@gmail.com> * remove 'HOME' from expected env vars Signed-off-by: Dave Henderson <dhenderson@gmail.com> * more tweaks Signed-off-by: Dave Henderson <dhenderson@gmail.com> * lint fix Signed-off-by: Dave Henderson <dhenderson@gmail.com> --------- Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'template.go')
-rw-r--r--template.go13
1 files changed, 7 insertions, 6 deletions
diff --git a/template.go b/template.go
index 71796ab4..8c0aa64a 100644
--- a/template.go
+++ b/template.go
@@ -100,7 +100,7 @@ func parseNestedTemplates(ctx context.Context, nested config.Templates, tmpl *te
}
// TODO: maybe need to do something with root here?
- _, reldir, err := datafs.ResolveLocalPath(u.Path)
+ _, reldir, err := datafs.ResolveLocalPath(fsys, u.Path)
if err != nil {
return fmt.Errorf("resolveLocalPath: %w", err)
}
@@ -227,20 +227,21 @@ func gatherTemplates(ctx context.Context, cfg *config.Config, outFileNamer func(
func walkDir(ctx context.Context, cfg *config.Config, dir string, outFileNamer func(context.Context, string) (string, error), excludeGlob []string, mode os.FileMode, modeOverride bool) ([]Template, error) {
dir = filepath.ToSlash(filepath.Clean(dir))
- // we want a filesystem rooted at dir, for relative matching
+ // get a filesystem rooted in the same volume as dir (or / on non-Windows)
fsys, err := datafs.FSysForPath(ctx, dir)
if err != nil {
- return nil, fmt.Errorf("filesystem provider for %q unavailable: %w", dir, err)
+ return nil, err
}
// we need dir to be relative to the root of fsys
// TODO: maybe need to do something with root here?
- _, reldir, err := datafs.ResolveLocalPath(dir)
+ _, resolvedDir, err := datafs.ResolveLocalPath(fsys, dir)
if err != nil {
return nil, fmt.Errorf("resolveLocalPath: %w", err)
}
- subfsys, err := fs.Sub(fsys, reldir)
+ // we need to sub the filesystem to the dir
+ subfsys, err := fs.Sub(fsys, resolvedDir)
if err != nil {
return nil, fmt.Errorf("sub: %w", err)
}
@@ -248,7 +249,7 @@ func walkDir(ctx context.Context, cfg *config.Config, dir string, outFileNamer f
// just check . because fsys is subbed to dir already
dirStat, err := fs.Stat(subfsys, ".")
if err != nil {
- return nil, fmt.Errorf("stat %q (%q): %w", dir, reldir, err)
+ return nil, fmt.Errorf("stat %q (%q): %w", dir, resolvedDir, err)
}
dirMode := dirStat.Mode()