fileutil

package
v0.0.0-...-742bdff Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 15, 2024 License: MIT Imports: 23 Imported by: 0

README

fileutil

The package contains various helpers to interact with files

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	DefaultFilePermission = os.FileMode(0644)
)
View Source
var ErrInvalidSeparator = errors.New("invalid separator")
View Source
var IsNotEmpty = func(data []byte) bool {
	return len(data) > 0
}

IsNotEmpty determines if a data chunk is empty

View Source
var SkipEmptyLine = func(line []byte) bool {
	return len(line) > 0
}

Functions

func CleanPath

func CleanPath(inputPath string) (string, error)

CleanPath cleans paths to migtigate any possible path traversal attacks. and it always returns an absolute path

func CleanPathOrDefault

func CleanPathOrDefault(inputPath string, defaultPath string) string

CleanPathOrDefault cleans paths to migtigate any possible path traversal attacks.

func CopyFile

func CopyFile(src, dst string) error

CopyFile from source to destination

func CountLines

func CountLines(filename string) (uint, error)

CountLines counts the lines in a file

func CountLinesWithOptions

func CountLinesWithOptions(reader io.Reader, separator []byte, filter func([]byte) bool) (uint, error)

CountLinesWithOptions from a reader and custom filter function

func CountLinesWithSeparator

func CountLinesWithSeparator(separator []byte, filename string) (uint, error)

CountLinesWithSeparator of a file

func CreateFolder

func CreateFolder(path string) error

CreateFolder path

func CreateFolders

func CreateFolders(paths ...string) error

CreateFolders in the list

func DedupeLines

func DedupeLines(filename string) error

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

func DownloadFile(filepath string, url string) error

DownloadFile to specified path

func ExecutableName

func ExecutableName() string

func FileExists

func FileExists(filename string) bool

FileExists checks if the file exists in the provided path

func FileExistsIn

func FileExistsIn(file string, allowedPaths ...string) (string, error)

FileExistsIn checks if the file exists in the allowed paths

func FileOrFolderExists

func FileOrFolderExists(name string) bool

FileOrFolderExists checks if the file/folder exists

func FileSizeToByteLen

func FileSizeToByteLen(fileSize string) (int, error)

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

func FixMissingDirs(path string) error

FixMissingDirs creates any missing directories in chain /path/to/file

func FolderExists

func FolderExists(foldername string) bool

FolderExists checks if the folder exists

func GetTempFileName

func GetTempFileName() (string, error)

GetTempFileName generate a temporary file name

func HasPermission

func HasPermission(fileName string, permission int) (bool, error)

HasPermission checks if the file has the requested permission

func HasStdin

func HasStdin() bool

HasStdin determines if the user has piped input

func IsEmpty

func IsEmpty(filename string) (bool, error)

IsEmpty checks if the file is empty

func IsReadable

func IsReadable(fileName string) (bool, error)

IsReadable verify file readability

func IsWriteable

func IsWriteable(fileName string) (bool, error)

IsWriteable verify file writeability

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

func OpenOrCreateFile(name string) (*os.File, error)

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

func ReadFile(filename string) (chan string, error)

ReadFile with filename

func ReadFileWithBufferSize

func ReadFileWithBufferSize(filename string, maxCapacity int) (chan string, error)

ReadFile with filename and specific buffer size

func ReadFileWithReader

func ReadFileWithReader(r io.Reader) (chan string, error)

ReadFileWithReader and stream on a channel

func ReadFileWithReaderAndBufferSize

func ReadFileWithReaderAndBufferSize(r io.Reader, maxCapacity int) (chan string, error)

ReadFileWithReader with specific buffer size and stream on a channel

func RemoveAll

func RemoveAll(paths ...string) (errored map[string]error)

RemoveAll specified paths, returning those that caused error

func ResolveNClean

func ResolveNClean(inputPath string, baseDir ...string) (string, error)

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

func ResolveNCleanOrDefault(inputPath string, defaultPath string, baseDir ...string) string

ResolveNCleanOrDefault resolves the path and cleans it

func SafeOpen

func SafeOpen(path string) (*os.File, error)

SafeOpen opens a file after cleaning the path in read mode

func SafeOpenAppend

func SafeOpenAppend(path string) (*os.File, error)

SafeOpenAppend opens a file after cleaning the path in append mode and creates any missing directories in chain /path/to/file

func SafeOpenWrite

func SafeOpenWrite(path string) (*os.File, error)

SafeOpenWrite opens a file after cleaning the path in write mode and creates any missing directories in chain /path/to/file

func SafeWriteFile

func SafeWriteFile(path string, data []byte) error

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

func SubstituteConfigFromEnvVars(filepath string) (io.Reader, error)

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

func UseMusl

func UseMusl(path string) (bool, error)

UseMusl checks if the specified elf file uses musl

Types

type EncodeType

type EncodeType uint8
const (
	YAML EncodeType = iota
	JSON
)

type FileFilters

type FileFilters struct {
	OlderThan    time.Duration
	Prefix       string
	Suffix       string
	RegexPattern string
	CustomCheck  func(filename string) bool
	Callback     func(filename string) error
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL