Documentation
¶
Index ¶
- Variables
- func CleanPath(inputPath string) (string, error)
- func CleanPathOrDefault(inputPath string, defaultPath string) string
- func CopyFile(src, dst string) error
- func CountLines(filename string) (uint, error)
- func CountLinesWithOptions(reader io.Reader, separator []byte, filter func([]byte) bool) (uint, error)
- func CountLinesWithSeparator(separator []byte, filename string) (uint, error)
- func CreateFolder(path string) error
- func CreateFolders(paths ...string) error
- func DedupeLines(filename string) error
- func DeleteFilesOlderThan(folder string, filter FileFilters) error
- func DownloadFile(filepath string, url string) error
- func ExecutableName() string
- func FileExists(filename string) bool
- func FileExistsIn(file string, allowedPaths ...string) (string, error)
- func FileOrFolderExists(name string) bool
- func FileSizeToByteLen(fileSize string) (int, error)
- func FixMissingDirs(path string) error
- func FolderExists(foldername string) bool
- func GetTempFileName() (string, error)
- func HasPermission(fileName string, permission int) (bool, error)
- func HasStdin() bool
- func IsEmpty(filename string) (bool, error)
- func IsReadable(fileName string) (bool, error)
- func IsWriteable(fileName string) (bool, error)
- func Lines(filename string, opts ...LineOption) iter.Seq2[string, error]
- func LinesReader(r io.Reader, opts ...LineOption) iter.Seq2[string, error]
- func Marshal(encodeType EncodeType, data []byte, obj interface{}) error
- func MarshalToWriter(encodeType EncodeType, r io.Writer, obj interface{}) error
- func OpenOrCreateFile(name string) (*os.File, error)
- func ReadFile(filename string) (chan string, error)deprecated
- func ReadFileWithBufferSize(filename string, maxCapacity int) (chan string, error)deprecated
- func ReadFileWithReader(r io.Reader) (chan string, error)deprecated
- func ReadFileWithReaderAndBufferSize(r io.Reader, maxCapacity int) (chan string, error)deprecated
- func RemoveAll(paths ...string) (errored map[string]error)
- func ResolveNClean(inputPath string, baseDir ...string) (string, error)
- func ResolveNCleanOrDefault(inputPath string, defaultPath string, baseDir ...string) string
- func SafeOpen(path string) (*os.File, error)
- func SafeOpenAppend(path string) (*os.File, error)
- func SafeOpenWrite(path string) (*os.File, error)
- func SafeWriteFile(path string, data []byte) error
- func SubstituteConfigFromEnvVars(filepath string) (io.Reader, error)
- func Unmarshal(encodeType EncodeType, data []byte, obj interface{}) error
- func UnmarshalFromReader(encodeType EncodeType, r io.Reader, obj interface{}) error
- func UseMusl(path string) (bool, error)
- type EncodeType
- type FileFilters
- type LineOption
Constants ¶
This section is empty.
Variables ¶
var (
DefaultFilePermission = os.FileMode(0644)
)
var ErrInvalidSeparator = errors.New("invalid separator")
var IsNotEmpty = func(data []byte) bool { return len(data) > 0 }
IsNotEmpty determines if a data chunk is empty
var SkipEmptyLine = func(line []byte) bool { return len(line) > 0 }
Functions ¶
func CleanPath ¶ added in v0.0.57
CleanPath cleans paths to migtigate any possible path traversal attacks. and it always returns an absolute path
func CleanPathOrDefault ¶ added in v0.0.57
CleanPathOrDefault cleans paths to migtigate any possible path traversal attacks.
func CountLines ¶ added in v0.0.7
CountLines counts the lines in a file
func CountLinesWithOptions ¶ added in v0.0.7
func CountLinesWithOptions(reader io.Reader, separator []byte, filter func([]byte) bool) (uint, error)
CountLinesWithOptions from a reader and custom filter function
func CountLinesWithSeparator ¶ added in v0.0.7
CountLinesWithSeparator of a file
func DedupeLines ¶ added in v0.0.93
DedupeLines reads a file and removes duplicate lines from it. The function can be memory intensive for large files.
func DeleteFilesOlderThan ¶
func DeleteFilesOlderThan(folder string, filter FileFilters) error
func DownloadFile ¶
DownloadFile to specified path
func ExecutableName ¶
func ExecutableName() string
func FileExists ¶
FileExists checks if the file exists in the provided path
func FileExistsIn ¶ added in v0.0.46
FileExistsIn checks if the file exists in the allowed paths
func FileOrFolderExists ¶ added in v0.0.4
FileOrFolderExists checks if the file/folder exists
func FileSizeToByteLen ¶ added in v0.0.35
FileSizeToByteLen converts a file size with units(kb, mb, gb, tb) to byte length e.g. 1kb -> 1024 If no unit is provided, it will fallback to mb. e.g: '2' will be converted to 2097152.
func FixMissingDirs ¶ added in v0.0.57
FixMissingDirs creates any missing directories in chain /path/to/file
func FolderExists ¶
FolderExists checks if the folder exists
func GetTempFileName ¶
GetTempFileName generate a temporary file name
func HasPermission ¶
HasPermission checks if the file has the requested permission
func IsWriteable ¶
IsWriteable verify file writeability
func Lines ¶ added in v0.11.0
Lines streams lines from the file at filename, applying any configured transforms. With no options it emits raw scanner lines.
The file is opened lazily on first iteration and closed when iteration ends (including via break). Open and scanner errors are surfaced as a final ("", err) pair, after which iteration stops.
Typical use:
for v, err := range fileutil.Lines(path,
fileutil.WithSplit(','),
fileutil.WithTrimSpace(),
fileutil.WithSkipEmpty(),
) {
if err != nil { return err }
// use v
}
func LinesReader ¶ added in v0.11.0
LinesReader is the io.Reader variant of Lines. The reader is consumed but not closed; the caller owns its lifecycle.
func Marshal ¶
func Marshal(encodeType EncodeType, data []byte, obj interface{}) error
func MarshalToWriter ¶
func MarshalToWriter(encodeType EncodeType, r io.Writer, obj interface{}) error
func OpenOrCreateFile ¶ added in v0.0.41
OpenOrCreate opens the named file for reading. If successful, methods on the returned file can be used for reading; the associated file descriptor has mode O_RDWR. If there is an error, it'll create the named file with mode 0666. If successful, methods on the returned File can be used for I/O; the associated file descriptor has mode O_RDWR. If there is an error, it will be of type *PathError. Note: The file gets created only if the target directory exists
func ReadFile
deprecated
func ReadFileWithBufferSize
deprecated
ReadFileWithBufferSize streams the file at filename line by line on a channel using the given scanner buffer size.
Deprecated: use Lines with WithBufferSize. Equivalent invocation:
for line, err := range fileutil.Lines(filename, fileutil.WithBufferSize(n)) { ... }
func ReadFileWithReader
deprecated
func ReadFileWithReaderAndBufferSize
deprecated
ReadFileWithReaderAndBufferSize streams r line by line on a channel using the given scanner buffer size.
Deprecated: use LinesReader with WithBufferSize. Equivalent invocation:
for line, err := range fileutil.LinesReader(r, fileutil.WithBufferSize(n)) { ... }
func ResolveNClean ¶ added in v0.0.57
ResolveNClean resolves the path and cleans it ex: a nuclei template can be either abs or relative to a specified directory this function uses given path as a base to resolve the path instead of cwd
func ResolveNCleanOrDefault ¶ added in v0.0.57
ResolveNCleanOrDefault resolves the path and cleans it
func SafeOpenAppend ¶ added in v0.0.57
SafeOpenAppend opens a file after cleaning the path in append mode and creates any missing directories in chain /path/to/file
func SafeOpenWrite ¶ added in v0.0.57
SafeOpenWrite opens a file after cleaning the path in write mode and creates any missing directories in chain /path/to/file
func SafeWriteFile ¶ added in v0.0.57
SafeWriteFile writes data to a file after cleaning the path in write mode and creates any missing directories in chain /path/to/file
func SubstituteConfigFromEnvVars ¶ added in v0.0.31
SubstituteConfigFromEnvVars reads a config file and generates a reader with substituted config values from environment variables
func Unmarshal ¶
func Unmarshal(encodeType EncodeType, data []byte, obj interface{}) error
func UnmarshalFromReader ¶
func UnmarshalFromReader(encodeType EncodeType, r io.Reader, obj interface{}) error
Types ¶
type FileFilters ¶
type LineOption ¶ added in v0.11.0
type LineOption func(*lineConfig)
LineOption configures the line iterator returned by Lines / LinesReader.
func WithBufferSize ¶ added in v0.11.0
func WithBufferSize(n int) LineOption
WithBufferSize sets the underlying bufio.Scanner buffer. A non-positive value leaves the scanner default (64 KiB) in place.
func WithFilter ¶ added in v0.11.0
func WithFilter(keep func(string) bool) LineOption
WithFilter keeps only values for which keep returns true. The filter runs after split / trim / skip-empty so it sees the final value that would be yielded.
func WithSkipEmpty ¶ added in v0.11.0
func WithSkipEmpty() LineOption
WithSkipEmpty drops empty values, evaluated after WithTrimSpace.
func WithSplit ¶ added in v0.11.0
func WithSplit(separators ...rune) LineOption
WithSplit splits each scanned line on any of the given runes (strings.FieldsFunc semantics: runs of separator runes are collapsed and empty pieces are not produced). Each piece becomes its own emitted value.
func WithTrimSpace ¶ added in v0.11.0
func WithTrimSpace() LineOption
WithTrimSpace trims leading/trailing whitespace from each emitted value.