From 5e3421a0a78f22123f2faade509d6d740b37d85b Mon Sep 17 00:00:00 2001 From: Sasha Koshka Date: Sat, 7 Dec 2024 21:47:11 -0500 Subject: [PATCH] providers/path: Add functions to check if a file is hidden --- providers/path/path.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/providers/path/path.go b/providers/path/path.go index 795b742..299eb2f 100644 --- a/providers/path/path.go +++ b/providers/path/path.go @@ -1,10 +1,13 @@ package path import "path" -// import "strings" +import "strings" import "html/template" +import "path/filepath" import "git.tebibyte.media/sashakoshka/step" +const hiddenPrefix = "." + var _ step.FuncProvider = new(Provider) // Provider provides path functions. @@ -15,11 +18,21 @@ type Provider struct { // FuncMap fulfills the step.FuncProvider interface. func (this *Provider) FuncMap () template.FuncMap { return template.FuncMap { + "isHidden": funcIsHidden, + "osIsHidden": funcOSIsHidden, "joinPaths": funcJoinPaths, "osJoinPaths": funcOSJoinPaths, } } +func funcIsHidden (name string) bool { + return strings.HasPrefix(path.Base(name), hiddenPrefix) +} + +func funcOSIsHidden (name string) bool { + return strings.HasPrefix(filepath.Base(name), hiddenPrefix) +} + func funcJoinPaths (left, right string) string { return path.Join(left, right) }