util

package
v0.0.0-...-85b91c5 Latest Latest
Warning

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

Go to latest
Published: Oct 25, 2023 License: MIT Imports: 26 Imported by: 68

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CopyFile

func CopyFile(src, dest string) error

CopyFile copies file from source to target path.

func CryptoRandomBytes

func CryptoRandomBytes(length int64) ([]byte, error)

CryptoRandomBytes generates `length` crypto bytes This differs from CryptoRandomString, as each byte in CryptoRandomString is generated by [0,61] range This function generates totally random bytes, each byte is generated by [0,255] range

func CryptoRandomInt

func CryptoRandomInt(limit int64) (int64, error)

CryptoRandomInt returns a crypto random integer between 0 and limit, inclusive

func CryptoRandomString

func CryptoRandomString(length int64) (string, error)

CryptoRandomString generates a crypto random alphanumerical string, each byte is generated by [0,61] range

func Dedent

func Dedent(s string) string

Dedent removes common indentation of a multi-line string along with whitespace around it Based on https://github.com/lithammer/dedent

func EnsureAbsolutePath

func EnsureAbsolutePath(path, absoluteBase string) string

EnsureAbsolutePath ensure that a path is absolute, making it relative to absoluteBase if necessary

func ExistsInSlice

func ExistsInSlice(target string, slice []string) bool

ExistsInSlice returns true if string exists in slice.

func FileURLToPath

func FileURLToPath(u *url.URL) (string, error)

FileURLToPath extracts the path information from a file://... url.

func GenerateHashString

func GenerateHashString(token, salt string) string

func GenerateRandomString

func GenerateRandomString() string

func GenerateRandomStringWithLength

func GenerateRandomStringWithLength(length int) string

func GetDirectorySize

func GetDirectorySize(path string) (int64, error)

GetDirectorySize returns the disk consumption for a given path

func HomeDir

func HomeDir() (home string, err error)

HomeDir returns path of '~'(in Linux) on Windows, it returns error when the variable does not exist.

func IsDir

func IsDir(dir string) (bool, error)

IsDir returns true if given path is a directory, or returns false when it's a file or does not exist.

func IsEmptyString

func IsEmptyString(s string) bool

IsEmptyString checks if the provided string is empty

func IsEqualSlice

func IsEqualSlice(target, source []string) bool

IsEqualSlice returns true if slices are equal.

func IsExist

func IsExist(path string) (bool, error)

IsExist checks whether a file or directory exists. It returns false when the file or directory does not exist.

func IsFile

func IsFile(filePath string) (bool, error)

IsFile returns true if given path is a file, or returns false when it's a directory or does not exist.

func IsInt64InSlice

func IsInt64InSlice(target int64, slice []int64) bool

IsInt64InSlice sequential searches if int64 exists in slice.

func IsSliceInt64Eq

func IsSliceInt64Eq(a, b []int64) bool

IsSliceInt64Eq returns if the two slice has the same elements but different sequences.

func IsStringInSlice

func IsStringInSlice(target string, slice []string, insensitive ...bool) bool

IsStringInSlice sequential searches if string exists in slice.

func Max

func Max(a, b int) int

Max max of two ints

func MergeInto

func MergeInto(dict map[string]interface{}, values ...interface{}) (map[string]interface{}, error)

MergeInto merges pairs of values into a "dict"

func Min

func Min(a, b int) int

Min min of two ints

func NormalizeEOL

func NormalizeEOL(input []byte) []byte

NormalizeEOL will convert Windows (CRLF) and Mac (CR) EOLs to UNIX (LF)

func NumberIntoInt64

func NumberIntoInt64(number interface{}) int64

NumberIntoInt64 transform a given int into int64.

func PaginateSlice

func PaginateSlice(list interface{}, page, pageSize int) interface{}

PaginateSlice cut a slice as per pagination options if page = 0 it do not paginate

func PathEscapeSegments

func PathEscapeSegments(path string) string

PathEscapeSegments escapes segments of a path while not escaping forward slash

func ReadAtMost

func ReadAtMost(r io.Reader, buf []byte) (n int, err error)

ReadAtMost reads at most len(buf) bytes from r into buf. It returns the number of bytes copied. n is only less than len(buf) if r provides fewer bytes. If EOF occurs while reading, err will be nil.

func Remove

func Remove(name string) error

Remove removes the named file or (empty) directory with at most 5 attempts.

func RemoveAll

func RemoveAll(name string) error

RemoveAll removes the named file or (empty) directory with at most 5 attempts.

func RemoveIDFromList

func RemoveIDFromList(list []int64, id int64) ([]int64, bool)

RemoveIDFromList removes the given ID from the slice, if found. It does not preserve order, and assumes the ID is unique.

func Rename

func Rename(oldpath, newpath string) error

Rename renames (moves) oldpath to newpath with at most 5 attempts.

func SanitizeCredentialURLs

func SanitizeCredentialURLs(s string) string

SanitizeCredentialURLs remove all credentials in URLs (starting with "scheme://") for the input string: "https://user:pass@domain.com" => "https://sanitized-credential@domain.com"

func SanitizeErrorCredentialURLs

func SanitizeErrorCredentialURLs(err error) error

SanitizeErrorCredentialURLs wraps the error and make sure the returned error message doesn't contain sensitive credentials in URLs

func SecToTime

func SecToTime(duration int64) string

SecToTime converts an amount of seconds to a human-readable string. E.g. 66s -> 1 minute 6 seconds 52410s -> 14 hours 33 minutes 563418 -> 6 days 12 hours 1563418 -> 2 weeks 4 days 3937125s -> 1 month 2 weeks 45677465s -> 1 year 6 months

func ShellEscape

func ShellEscape(toEscape string) string

ShellEscape will escape the provided string. We can't just use go-shellquote here because our preferences for escaping differ from those in that we want:

* If the string doesn't require any escaping just leave it as it is. * If the string requires any escaping prefer double quote escaping * If we have ! or newlines then we need to use single quote escaping

func SplitStringAtByteN

func SplitStringAtByteN(input string, n int) (left, right string)

SplitStringAtByteN splits a string at byte n accounting for rune boundaries. (Combining characters are not accounted for.)

func SplitStringAtRuneN

func SplitStringAtRuneN(input string, n int) (left, right string)

SplitStringAtRuneN splits a string at rune n accounting for rune boundaries. (Combining characters are not accounted for.)

func StatDir

func StatDir(rootPath string, includeDir ...bool) ([]string, error)

StatDir gathers information of given directory by depth-first. It returns slice of file list and includes subdirectories if enabled; it returns error and nil slice when error occurs in underlying functions, or given path is not a directory or does not exist.

Slice does not include given path itself. If subdirectories is enabled, they will have suffix '/'.

func StopTimer

func StopTimer(t *time.Timer) bool

StopTimer is a utility function to safely stop a time.Timer and clean its channel

func ToSnakeCase

func ToSnakeCase(input string) string

ToSnakeCase convert the input string to snake_case format.

Some samples.

"FirstName"  => "first_name"
"HTTPServer" => "http_server"
"NoHTTPS"    => "no_https"
"GO_PATH"    => "go_path"
"GO PATH"    => "go_path"      // space is converted to underscore.
"GO-PATH"    => "go_path"      // hyphen is converted to underscore.

func ToTitleCase

func ToTitleCase(s string) string

ToTitleCase returns s with all english words capitalized

func ToUpperASCII

func ToUpperASCII(s string) string

ToUpperASCII returns s with all ASCII letters mapped to their upper case.

func URLJoin

func URLJoin(base string, elems ...string) string

URLJoin joins url components, like path.Join, but preserving contents

Types

type Int64Slice

type Int64Slice []int64

Int64Slice attaches the methods of Interface to []int64, sorting in increasing order.

func (Int64Slice) Len

func (p Int64Slice) Len() int

func (Int64Slice) Less

func (p Int64Slice) Less(i, j int) bool

func (Int64Slice) Swap

func (p Int64Slice) Swap(i, j int)

type OptionalBool

type OptionalBool byte

OptionalBool a boolean that can be "null"

const (
	// OptionalBoolNone a "null" boolean value
	OptionalBoolNone OptionalBool = iota
	// OptionalBoolTrue a "true" boolean value
	OptionalBoolTrue
	// OptionalBoolFalse a "false" boolean value
	OptionalBoolFalse
)

func OptionalBoolOf

func OptionalBoolOf(b bool) OptionalBool

OptionalBoolOf get the corresponding OptionalBool of a bool

func OptionalBoolParse

func OptionalBoolParse(s string) OptionalBool

OptionalBoolParse get the corresponding OptionalBool of a string using strconv.ParseBool

func (OptionalBool) IsFalse

func (o OptionalBool) IsFalse() bool

IsFalse return true if equal to OptionalBoolFalse

func (OptionalBool) IsNone

func (o OptionalBool) IsNone() bool

IsNone return true if equal to OptionalBoolNone

func (OptionalBool) IsTrue

func (o OptionalBool) IsTrue() bool

IsTrue return true if equal to OptionalBoolTrue

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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