comfunc

package
v0.6.15 Latest Latest
Warning

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

Go to latest
Published: Jan 4, 2024 License: MIT Imports: 12 Imported by: 0

README

common func for internal use

  • don't depend on other external packages

Documentation

Index

Constants

This section is empty.

Variables

View Source
var StrBySprintFn = func(v any) (string, error) {
	return fmt.Sprint(v), nil
}

StrBySprintFn convert any value to string by fmt.Sprint

Functions

func Bool added in v0.5.12

func Bool(v any) bool

Bool try to convert type to bool

func Cmdline added in v0.5.11

func Cmdline(args []string, binName ...string) string

Cmdline build

func CurrentShell added in v0.5.3

func CurrentShell(onlyName bool) (binPath string)

CurrentShell get current used shell env file.

eg "/bin/zsh" "/bin/bash". if onlyName=true, will return "zsh", "bash"

func Environ added in v0.5.11

func Environ() map[string]string

Environ like os.Environ, but will returns key-value map[string]string data.

func ExecCmd added in v0.5.3

func ExecCmd(binName string, args []string, workDir ...string) (string, error)

ExecCmd an command and return output.

Usage:

ExecCmd("ls", []string{"-al"})

func ExpandHome added in v0.6.8

func ExpandHome(pathStr string) string

ExpandHome will parse first `~` as user home dir path.

func FormatWithArgs added in v0.6.12

func FormatWithArgs(fmtAndArgs []any) string

FormatWithArgs format message with args

func HasShellEnv added in v0.5.3

func HasShellEnv(shell string) bool

HasShellEnv has shell env check.

Usage:

HasShellEnv("sh")
HasShellEnv("bash")

func IsDuration added in v0.6.9

func IsDuration(s string) bool

IsDuration check the string is a duration string.

func ShellExec added in v0.5.3

func ShellExec(cmdLine string, shells ...string) (string, error)

ShellExec exec command by shell cmdLine e.g. "ls -al"

func StrToBool added in v0.5.11

func StrToBool(s string) (bool, error)

StrToBool parse string to bool. like strconv.ParseBool()

func ToBool added in v0.5.11

func ToBool(v any) (bool, error)

ToBool try to convert type to bool

func ToDuration added in v0.6.9

func ToDuration(s string) (time.Duration, error)

ToDuration parses a duration string. such as "300ms", "-1.5h" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".

Diff of time.ParseDuration:

  • support extend unit d, w at the end of string. such as "1d", "2w".
  • support long string unit at end. such as "1hour", "2hours", "3minutes", "4mins", "5days", "1weeks".

If the string is not a valid duration string, it will return an error.

func ToStringWith added in v0.6.15

func ToStringWith(in any, optFns ...ConvOptionFn) (str string, err error)

ToStringWith try to convert value to string. can with some option func, more see ConvOption.

func WithHandlePtr added in v0.6.15

func WithHandlePtr(opt *ConvOption)

WithHandlePtr set ConvOption.HandlePtr option

func Workdir added in v0.6.8

func Workdir() string

Workdir get

Types

type ConvOption added in v0.6.15

type ConvOption struct {
	// if ture: value is nil, will return convert error;
	// if false(default): value is nil, will convert to zero value
	NilAsFail bool
	// HandlePtr auto convert ptr type(int,float,string) value. eg: *int to int
	// 	- if true: will use real type try convert. default is false
	//	- NOTE: current T type's ptr is default support.
	HandlePtr bool
	// set custom fallback convert func for not supported type.
	UserConvFn comdef.ToStringFunc
}

ConvOption convert options

func NewConvOption added in v0.6.15

func NewConvOption(optFns ...ConvOptionFn) *ConvOption

NewConvOption create a new ConvOption

func (*ConvOption) WithOption added in v0.6.15

func (opt *ConvOption) WithOption(optFns ...ConvOptionFn)

WithOption set convert option

type ConvOptionFn added in v0.6.15

type ConvOptionFn func(opt *ConvOption)

ConvOptionFn convert option func

func WithUserConvFn added in v0.6.15

func WithUserConvFn(fn comdef.ToStringFunc) ConvOptionFn

WithUserConvFn set ConvOption.UserConvFn option

Jump to

Keyboard shortcuts

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