💪 Helper Utils For The Go: string, array/slice, map, format, cli, env, filesystem, test and more. Go 的一些工具函数,格式化,特殊处理,常用信息获取等等
💪 Useful utils for the Go: string, array/slice, map, format, CLI, ENV, filesystem, testing and more.
arrutilarray/slice util functions
dumpSimple variable printing tool, printing slice, map will automatically wrap each element and display the call location
cliutilCLI util functions
envutilENV util for check current runtime env information
fmtutilformat data util functions
fsutilfilesystem util functions
jsonutilJSON util functions
maputilmap util functions
mathutilmath util functions
netutilnetwork util functions
strutilstring util functions
testutiltest help util functions
Package
github.com/gookit/goutil/arrutil
// source at arrutil/arrutil.go func Contains(arr, val interface{}) bool func NotContains(arr, val interface{}) bool func GetRandomOne(arr interface{}) interface{} // source at arrutil/slice.go func Reverse(ss []string) func StringsRemove(ss []string, s string) []string func StringsToInts(ss []string) (ints []int, err error) func TrimStrings(ss []string, cutSet ...string) (ns []string) func IntsHas(ints []int, val int) bool func Int64sHas(ints []int64, val int64) bool func StringsHas(ss []string, val string) bool
Package
github.com/gookit/goutil/cliutil
// source at cliutil/cliutil.go func QuickExec(cmdLine string, workDir ...string) (string, error) func ExecCmd(binName string, args []string, workDir ...string) (string, error) func ExecCommand(binName string, args []string, workDir ...string) (string, error) func ShellExec(cmdLine string, shells ...string) (string, error) func CurrentShell(onlyName bool) (path string) func HasShellEnv(shell string) bool // source at cliutil/line_parser.go func StringToOSArgs(line string) []string func ParseLine(line string) []string // source at cliutil/read.go func ReadInput(question string) (string, error) func ReadLine(question string) (string, error) func ReadFirst(question string) (string, error) // source at cliutil/read_nonwin.go func ReadPassword(question ...string) string
Package
github.com/gookit/goutil/dump
// source at dump/dump.go func Std() *Dumper func Reset() func Config(fn func(*Dumper)) func Print(vs ...interface{}) func Println(vs ...interface{}) func Fprint(w io.Writer, vs ...interface{}) // source at dump/dumper.go func NewDumper(out io.Writer, skip int) *Dumper
Package
github.com/gookit/goutil/envutil
// source at envutil/envutil.go func ParseEnvValue(val string) (newVal string) // source at envutil/get.go func Getenv(name string, def ...string) string // source at envutil/info.go func IsWin() bool func IsMac() bool func IsLinux() bool func IsConsole(out io.Writer) bool func IsMSys() bool func HasShellEnv(shell string) bool func IsSupportColor() bool func IsSupport256Color() bool func IsSupportTrueColor() bool
Package
github.com/gookit/goutil/fmtutil
// source at fmtutil/format.go func DataSize(bytes uint64) string func PrettyJSON(v interface{}) (string, error) func StringsToInts(ss []string) (ints []int, err error) func ArgsWithSpaces(args []interface{}) (message string) // source at fmtutil/time.go func HowLongAgo(sec int64) string
Package
github.com/gookit/goutil/fsutil
// source at fsutil/filesystem.go func PathExists(path string) bool func IsDir(path string) bool func FileExists(path string) bool func IsFile(path string) bool func IsAbsPath(aPath string) bool func Mkdir(dirPath string, perm os.FileMode) error func MustReadFile(filePath string) []byte func OpenFile(filepath string, flag int, perm os.FileMode) (*os.File, error) func QuickOpenFile(filepath string) (*os.File, error) func CreateFile(fpath string, filePerm, dirPerm os.FileMode) (*os.File, error) func MustCreateFile(filePath string, filePerm, dirPerm os.FileMode) *os.File func CopyFile(src string, dst string) error func MustCopyFile(src string, dst string) func MimeType(path string) (mime string) func ReaderMimeType(r io.Reader) (mime string) func IsImageFile(path string) bool func IsZipFile(filepath string) bool func Unzip(archive, targetDir string) (err error) func DeleteIfFileExist(fpath string) error func FileExt(fpath string) string func Suffix(fpath string) string // source at fsutil/finder.go func EmptyFinder() *FileFinder func NewFinder(dirPaths []string, filePaths ...string) *FileFinder func ExtFilterFunc(exts []string, include bool) FileFilterFunc func SuffixFilterFunc(suffixes []string, include bool) FileFilterFunc func PathNameFilterFunc(names []string, include bool) FileFilterFunc func DotFileFilterFunc(include bool) FileFilterFunc func ModTimeFilterFunc(limitSec int, op rune, include bool) FileFilterFunc func GlobFilterFunc(patterns []string, include bool) FileFilterFunc func RegexFilterFunc(pattern string, include bool) FileFilterFunc func DotDirFilterFunc(include bool) DirFilterFunc func DirNameFilterFunc(names []string, include bool) DirFilterFunc
Package
github.com/gookit/goutil/jsonutil
// source at jsonutil/jsonutil.go func WriteFile(filePath string, data interface{}) error func ReadFile(filePath string, v interface{}) error func Encode(v interface{}) ([]byte, error) func Decode(json []byte, v interface{}) error func Pretty(v interface{}) (string, error) func StripComments(src string) string
Package
github.com/gookit/goutil/maputil
// source at maputil/map.go func MergeStringMap(src, dst map[string]string, ignoreCase bool) map[string]string func KeyToLower(src map[string]string) map[string]string func GetByPath(key string, mp map[string]interface{}) (val interface{}, ok bool) func Keys(mp interface{}) (keys []string) func Values(mp interface{}) (values []interface{})
Package
github.com/gookit/goutil/mathutil
// source at mathutil/convert.go func Int(in interface{}) (int, error) func MustInt(in interface{}) int func ToInt(in interface{}) (iVal int, err error) func Uint(in interface{}) (uint64, error) func MustUint(in interface{}) uint64 func ToUint(in interface{}) (u64 uint64, err error) func Int64(in interface{}) (int64, error) func MustInt64(in interface{}) int64 func ToInt64(in interface{}) (i64 int64, err error) func Float(in interface{}) (float64, error) func ToFloat(in interface{}) (f64 float64, err error) func MustFloat(in interface{}) float64 // source at mathutil/number.go func Percent(val, total int) float64 func ElapsedTime(startTime time.Time) string func DataSize(size uint64) string func HowLongAgo(sec int64) string // source at mathutil/random.go func RandomInt(min, max int) int
Package
github.com/gookit/goutil/strutil
// source at strutil/encode.go func Base64(str string) string func B64Encode(str string) string func URLEncode(s string) string func URLDecode(s string) string // source at strutil/find_similar.go func NewComparator(src, dst string) *SimilarComparator func Similarity(s, t string, rate float32) (float32, bool) // source at strutil/format.go func Lowercase(s string) string func Uppercase(s string) string func UpperWord(s string) string func LowerFirst(s string) string func UpperFirst(s string) string func Snake(s string, sep ...string) string func SnakeCase(s string, sep ...string) string func Camel(s string, sep ...string) string func CamelCase(s string, sep ...string) string // source at strutil/id.go func MicroTimeID() string func MicroTimeHexID() string // source at strutil/random.go func Md5(src interface{}) string func GenMd5(src interface{}) string func RandomChars(ln int) string func RandomCharsV2(ln int) string func RandomCharsV3(ln int) string func RandomBytes(length int) ([]byte, error) func RandomString(length int) (string, error) // source at strutil/strconv.go func String(val interface{}) (string, error) func MustString(in interface{}) string func ToString(val interface{}) (str string, err error) func ToBool(s string) (bool, error) func MustBool(s string) bool func Bool(s string) (bool, error) func Int(s string) (int, error) func ToInt(s string) (int, error) func MustInt(s string) int func ToInts(s string, sep ...string) ([]int, error) func ToIntSlice(s string, sep ...string) (ints []int, err error) func ToArray(s string, sep ...string) []string func ToSlice(s string, sep ...string) []string func ToOSArgs(s string) []string func ToTime(s string, layouts ...string) (t time.Time, err error) // source at strutil/strutil.go func IsAlphabet(char uint8) bool func Trim(s string, cutSet ...string) string func TrimLeft(s string, cutSet ...string) string func TrimRight(s string, cutSet ...string) string func FilterEmail(s string) string func Split(s, sep string) (ss []string) func Substr(s string, pos, length int) string func Padding(s, pad string, length int, pos uint8) string func PadLeft(s, pad string, length int) string func PadRight(s, pad string, length int) string func Repeat(s string, times int) string func RepeatRune(char rune, times int) (chars []rune) func Replaces(str string, pairs map[string]string) string func PrettyJSON(v interface{}) (string, error) func RenderTemplate(input string, data interface{}, fns template.FuncMap, isFile ...bool) string func RenderText(input string, data interface{}, fns template.FuncMap, isFile ...bool) string
Package
github.com/gookit/goutil/sysutil
// source at sysutil/exec.go func QuickExec(cmdLine string, workDir ...string) (string, error) func ExecCmd(binName string, args []string, workDir ...string) (string, error) func ShellExec(cmdStr string, shells ...string) (string, error) // source at sysutil/sysutil.go func CurrentShell(onlyName bool) (path string) func HasShellEnv(shell string) bool func FindExecutable(binName string) (string, error) func HasExecutable(binName string) bool func IsWin() bool func IsWindows() bool func IsMac() bool func IsLinux() bool func IsMSys() bool func IsConsole(out io.Writer) bool // source at sysutil/sysutil_nonwin.go func Kill(pid int, signal syscall.Signal) error func ProcessExists(pid int) bool
Package
github.com/gookit/goutil/testutil
// source at testutil/httpmock.go func NewHttpRequest(method, path string, data *MD) *http.Request func MockRequest(h http.Handler, method, path string, data *MD) *httptest.ResponseRecorder // source at testutil/testutil.go func DiscardStdout() error func ReadOutput() (s string) func RewriteStdout() func RestoreStdout() (s string) func RewriteStderr() func RestoreStderr() (s string) func MockEnvValue(key, val string, fn func(nv string)) func MockEnvValues(kvMap map[string]string, fn func())
gofmt -w -l ./ golint ./... go test ./...