From 67bd30907ec9da018945e4a9003252892439b903 Mon Sep 17 00:00:00 2001 From: brent saner Date: Sat, 8 Aug 2026 00:30:44 -0400 Subject: [PATCH] v1.17.2 ADDED: * iox/fsx: ** FsPaths ** HasType ** IsType --- iox/fsx/funcs.go | 16 ++++++++++++++++ tplx/sprigx/README.html | 2 +- tplx/sprigx/README.md | 2 +- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/iox/fsx/funcs.go b/iox/fsx/funcs.go index 2da9885..c080410 100644 --- a/iox/fsx/funcs.go +++ b/iox/fsx/funcs.go @@ -6,6 +6,8 @@ import ( "path/filepath" ) +// TODO: FilterFsPaths + /* FsPaths returns all paths in [io/fs.FS] `fsys`. @@ -82,6 +84,8 @@ func getEntries(fsys fs.FS, t fs.FileMode, inclFiles bool, maxDepth int, relPath var idx int var p string + var k string + var v fs.DirEntry var e []fs.DirEntry var subs map[string]fs.DirEntry = make(map[string]fs.DirEntry) @@ -89,12 +93,24 @@ func getEntries(fsys fs.FS, t fs.FileMode, inclFiles bool, maxDepth int, relPath return } + fsPaths = make(map[string]fs.DirEntry) + for idx = range e { p = filepath.Join(relPath, e[idx].Name()) if e[idx].IsDir() { if subs, err = getEntries(fsys, t, inclFiles, maxDepth, p); err != nil { return } + for k, v = range subs { + fsPaths[k] = v + } + } + if t != 0 { + if HasType(t, e[idx].Type()) { + fsPaths[p] = e[idx] + } + } else if inclFiles && e[idx].Type() == 0 { + fsPaths[p] = e[idx] } } diff --git a/tplx/sprigx/README.html b/tplx/sprigx/README.html index 5cf6e10..557fe5b 100644 --- a/tplx/sprigx/README.html +++ b/tplx/sprigx/README.html @@ -636,7 +636,7 @@ pre.rouge .gs {
Brent Saner

-Last rendered 2026-08-08 00:13:35 -0400 +Last rendered 2026-08-08 00:30:44 -0400
Table of Contents
diff --git a/tplx/sprigx/README.md b/tplx/sprigx/README.md index af5320e..2d8d8e1 100644 --- a/tplx/sprigx/README.md +++ b/tplx/sprigx/README.md @@ -6,7 +6,7 @@ Brent Saner -Last rendered 2026-08-08 00:13:40 -0400 +Last rendered 2026-08-08 00:30:48 -0400