osutil

package
v0.39.3 Latest Latest
Warning

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

Go to latest
Published: May 13, 2022 License: MIT Imports: 15 Imported by: 34

Documentation

Overview

Package osutil implements some OS utility functions.

Package osutil implements some OS utility functions.

Index

Constants

View Source
const (
	ColDir  = "dir"
	ColName = "name"
	ColPath = "path"
	ColSize = "size"
)

Variables

This section is empty.

Functions

func AbsFilepath

func AbsFilepath(path string) (string, error)

AbsFilepath returns an absolute filepath, using the user's current / home directory if indicated in the filepath string.

func CreateFileWithLines

func CreateFileWithLines(filename string, lines []string, lineSuffix string, useBuffer bool) error

CreateFileWithLines creates a file and writes lines to it. It will optionally add a `lineSuffix` (e.g. `"\n"`) and use `bufio`.

func EmptyAll

func EmptyAll(name string) error

EmptyAll will delete all contents of a directory, leaving the provided directory. This is different from os.Remove which also removes the directory provided.

func EnvExists

func EnvExists(fields ...string) (missing []string, haveAll bool)

func EnvFiltered

func EnvFiltered(rx *regexp.Regexp) map[string]string

EnvFiltered returns a map[string]string of environment variables that match a regular expression.

func Exists

func Exists(name string) (bool, error)

Exists checks whether the named filepath exists or not for a file or directory.

func FileModAge

func FileModAge(name string) (time.Duration, error)

FileModAge returns a time.Duration representing the age of the named file from FileInfo.ModTime().

func FileModAgeFromInfo

func FileModAgeFromInfo(fi os.FileInfo) time.Duration

FileModAgeFromInfo returns the file last modification age as a time.Duration.

func FinfosToFilepaths

func FinfosToFilepaths(dir string, fis []os.FileInfo) []string

FinfosToFilepaths returns a slice of string from a directory and sli=ce of `os.FileInfo`.

func GetFileInfo

func GetFileInfo(path string) (os.FileInfo, error)

GetFileInfo returns an os.FileInfo from a filepath.

func GoPath added in v0.37.9

func GoPath(parts ...string) string

func IsDir

func IsDir(name string) (bool, error)

func IsFile

func IsFile(name string, sizeGtZero bool) (bool, error)

IsFile verifies a path exists and is a file. It will optionally check if a file is not empty. An os file not exists check can be done with os.IsNotExist(err) which acts on error from os.Stat().

func MustUserHomeDir

func MustUserHomeDir(subdirs ...string) string

func ReadDirMore

func ReadDirMore(dir string, rx *regexp.Regexp, inclDirs, inclFiles, inclEmptyFiles bool) ([]os.DirEntry, error)

func ReadDirRxSubmatch

func ReadDirRxSubmatch(dir string, rx *regexp.Regexp, subMatchIdx uint, inclDirs, inclFiles, inclEmptyFiles bool) (map[string][]os.DirEntry, error)

ReadDirRxSubmatch takes a directory, regular expression and boolean to indicate whether to include zero size files and returns the greatest of a single match in the regular expression.

func ReadDirRxSubmatchCaptureGreatest

func ReadDirRxSubmatchCaptureGreatest(dir string, rx *regexp.Regexp, subMatchIdx uint, inclDirs, inclFiles, inclEmptyFiles bool) (string, error)

ReadDirRxSubmatchCaptureGreatest takes a directory, regular expression and returns the greatest of a single submatch in the regular expression.

func ReadDirRxSubmatchCaptures

func ReadDirRxSubmatchCaptures(dir string, rx *regexp.Regexp, subMatchIdx uint, inclDirs, inclFiles, inclEmptyFiles bool) ([]string, error)

ReadDirRxSubmatchCaptures takes a directory, regular expression and returns the greatest of captures from the regular expression.

func ReadDirRxSubmatchEntriesGreatest

func ReadDirRxSubmatchEntriesGreatest(dir string, rx *regexp.Regexp, subMatchIdx uint, inclDirs, inclFiles, inclEmptyFiles bool) ([]os.DirEntry, error)

func ReadSubdirMax

func ReadSubdirMax(dir string, rx *regexp.Regexp) (os.DirEntry, error)

func ReadSubdirMin

func ReadSubdirMin(dir string, rx *regexp.Regexp) (os.DirEntry, error)

func SortDirEntriesModTime added in v0.37.18

func SortDirEntriesModTime(files DirEntries)

SortDirEntriesModTime sorts `DirEntries` by last modified time. It will panic if an entry cannot retrieve `FileInfo` information.

func VisitPath added in v0.37.18

func VisitPath(dir string, rx *regexp.Regexp, inclDirs, inclFiles, inclEmptyFiles bool, visitFunc func(dir string) error) error

VisitPath visit a directory and all subdirectories, executing the supplied `visitFunc` on each.

Types

type DirEntries

type DirEntries []os.DirEntry

DirEntries provides utility functions for `[]os.DirEntry`. Use as `entries := osutil.DirEntries(slice)“

func (DirEntries) Infos

func (entries DirEntries) Infos() ([]os.FileInfo, error)

Infos returns a `[]os.FileInfo` slice.

func (DirEntries) Len

func (entries DirEntries) Len() int

func (DirEntries) Less

func (entries DirEntries) Less(i, j int) bool

func (DirEntries) Names

func (entries DirEntries) Names(dir string, sortNames bool) []string

Names returns a slice of entry names. It can optionally add the directory path and sort the values.

func (DirEntries) Sort

func (entries DirEntries) Sort()

Sort sorts dir entries by name.

func (DirEntries) Swap

func (entries DirEntries) Swap(i, j int)

func (DirEntries) WriteFileNames added in v0.33.0

func (entries DirEntries) WriteFileNames(filename, dir string, sortNames bool, perm os.FileMode) error

WriteFileNames writes a text file with filenames, one per line.

type DirEntriesMore

type DirEntriesMore []DirEntryMore

func ReadDirFiles

func ReadDirFiles(dir string, inclDirs, inclFiles, recursive bool) (DirEntriesMore, error)

func (DirEntriesMore) Rows

func (entries DirEntriesMore) Rows(inclDirs, inclFiles bool, cols ...string) ([][]string, error)

type DirEntryMore

type DirEntryMore struct {
	Dir      string
	DirEntry fs.DirEntry
}

func (DirEntryMore) Row

func (em DirEntryMore) Row(cols ...string) ([]string, error)

type EnvVar

type EnvVar struct {
	Key   string
	Value string
}

func Env

func Env() []EnvVar

type FileInfoMore

type FileInfoMore struct {
	FileInfo os.FileInfo
	ModAge   time.Duration
}

FileInfoMore provides a struct hold FileInfo with additional information.

func NewFileInfoMoreFromPath

func NewFileInfoMoreFromPath(path string) (FileInfoMore, error)

NewFileInfoMoreFromPath returns a FileInfoMore struct populatig both FileInfo and ModAge (last modification time).

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

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