Filesystem

The Filesystem registry allows for efficient interaction with the file system, providing functions to read, write, and manipulate files directly from your templates.

You can easily import all the functions from the filesystem registry by including the following import statement in your code

import "github.com/go-sprout/sprout/registry/filesystem"

pathBase

The function returns the last element of a given path, effectively extracting the file or directory name from the full path.

{{ "/path/to/file.txt" | pathBase }} // Output: "file.txt"

pathDir

The function returns all but the last element of a given path, effectively extracting the directory portion of the path.

{{ "/" | pathDir }} // Output: "/"
{{ "/path/to/file.txt" | pathDir }} // Output: "/path/to"

pathExt

The function returns the file extension of the given path, identifying the type of file by its suffix.

{{ "/" | pathExt }} // Output: ""
{{ "/path/to/file.txt" | pathExt }} // Output: ".txt"

pathClean

The function cleans up a given path by simplifying any redundancies, such as removing unnecessary double slashes or resolving "." and ".." elements, resulting in a standardized and more straightforward path.

{{ "/path//to/file.txt" | pathClean }} // Output: "/path/to/file.txt"

pathIsAbs

The function checks whether the given path is an absolute path, returning true if it is and false if it is not.

{{ "/path/to/file.txt" | pathIsAbs }} // Output: true
{{ "../file.txt" | pathIsAbs }} // Output: false

osBase

The function returns the last element of a given path, using the operating system's specific path separator to determine the path structure.

{{ "C:\\path\\to\\file.txt" | osBase }} // Output: "file.txt"

osDir

The function returns all but the last element of a given path, using the operating system's specific path separator to navigate the directory structure.

{{ "C:\\path\\to\\file.txt" | osDir }} // Output: "C:\\path\\to"

osExt

The function returns the file extension of a given path, using the operating system's specific path separator to accurately determine the extension.

{{ "C:\\path\\to\\file.txt" | osExt }} // Output: ".txt"

osClean

The function cleans up a given path, using the operating system's specific path separator to simplify redundancies and standardize the path structure.

{{ "C:\\path\\\\to\\file.txt" | osClean }} // Output: "C:\\path\\to\\file.txt"

osIsAbs

The function checks whether the given path is absolute, using the operating system's specific path separator to determine if the path is absolute or relative.

{{ "C:\\path\\to\\file.txt" | osIsAbs }} // Output: true

Last updated

Change request #24: reflect safe functions feature and new signatures