diff --git a/providers/all.go b/providers/all.go index 003a620..ab22e57 100644 --- a/providers/all.go +++ b/providers/all.go @@ -3,6 +3,7 @@ package providers import "git.tebibyte.media/sashakoshka/step" import fpos "git.tebibyte.media/sashakoshka/step/providers/os" import fphttp "git.tebibyte.media/sashakoshka/step/providers/http" +import fppath "git.tebibyte.media/sashakoshka/step/providers/path" import fpsprig "git.tebibyte.media/sashakoshka/step/providers/sprig" import fpimport "git.tebibyte.media/sashakoshka/step/providers/import" import fpmarkdown "git.tebibyte.media/sashakoshka/step/providers/markdown" @@ -12,6 +13,7 @@ func All () []step.FuncProvider { return []step.FuncProvider { new(fpos.Provider), new(fphttp.Provider), + new(fppath.Provider), new(fpsprig.Provider), new(fpimport.Provider), fpmarkdown.Default(), diff --git a/providers/path/path.go b/providers/path/path.go new file mode 100644 index 0000000..795b742 --- /dev/null +++ b/providers/path/path.go @@ -0,0 +1,29 @@ +package path + +import "path" +// import "strings" +import "html/template" +import "git.tebibyte.media/sashakoshka/step" + +var _ step.FuncProvider = new(Provider) + +// Provider provides path functions. +type Provider struct { + +} + +// FuncMap fulfills the step.FuncProvider interface. +func (this *Provider) FuncMap () template.FuncMap { + return template.FuncMap { + "joinPaths": funcJoinPaths, + "osJoinPaths": funcOSJoinPaths, + } +} + +func funcJoinPaths (left, right string) string { + return path.Join(left, right) +} + +func funcOSJoinPaths (left, right string) string { + return path.Join(left, right) +}