Import path:
gitlab.soludian.com/soludian/fountain/libs/base/sys_util
sys_util
import "gitlab.soludian.com/soludian/fountain/libs/base/sys_util"Package sys_util provide some system util functions. eg: sysenv, exec, user, process
Index
- func BinDir() string
- func BinFile() string
- func BinName() string
- func CallerName(skip int) string
- func ChangeUserByName(newUname string) (err error)
- func ChangeUserUIDGid(newUid int, newGid int) (err error)
- func ChangeUserUidGid(newUid int, newGid int) (err error)
- func CurrentShell(onlyName bool) (path string)
- func CurrentUser() *user.User
- func EnvMapWith(newEnv map[string]string) map[string]string
- func EnvPaths() []string
- func Environ() map[string]string
- func ExecCmd(binName string, args []string, workDir ...string) (string, error)
- func ExecLine(cmdLine string, workDir ...string) (string, error)
- func Executable(binName string) (string, error)
- func ExpandHome(path string) string
- func ExpandPath(path string) string
- func ExternalIP() (string, error)
- func FindExecutable(binName string) (string, error)
- func FlushExec(bin string, args ...string) error
- func GetCallerPackageName(skips ...int) string
- func GetCallerPackageNamePath(skips ...int) string
- func GetLocalMainIP() (string, int, error)
- func Getenv(name string, def ...string) string
- func GoVersion() string
- func HasExecutable(binName string) bool
- func HasShellEnv(shell string) bool
- func HomeDir() string
- func Hostname() string
- func IsConsole(out io.Writer) bool
- func IsDarwin() bool
- func IsLinux() bool
- func IsMSys() bool
- func IsMac() bool
- func IsShellSpecialVar(c uint8) bool
- func IsTerminal(fd uintptr) bool
- func IsWin() bool
- func IsWindows() bool
- func Kill(pid int, signal syscall.Signal) error
- func LoginUser() *user.User
- func MustFindUser(uname string) *user.User
- func NewCmd(bin string, args ...string) *cmdr.Cmd
- func Open(fileOrURL string) error
- func OpenBrowser(fileOrURL string) error
- func OpenFile(path string) error
- func OpenURL(url string) error
- func ProcessExists(pid int) bool
- func QuickExec(cmdLine string, workDir ...string) (string, error)
- func SearchPath(keywords string, limit int) []string
- func ShellExec(cmdLine string, shells ...string) (string, error)
- func StdIsTerminal() bool
- func UHomeDir() string
- func UserCacheDir(subPath string) string
- func UserConfigDir(subPath string) string
- func UserDir(subPath string) string
- func UserHomeDir() string
- func WorkDir() string
- type CallerInfo
- type GoInfo
func BinDir
func BinDir() stringBinDir get
func BinFile
func BinFile() stringBinFile get
func BinName
func BinName() stringBinName get
func CallerName
func CallerName(skip int) stringCallerName ...
func ChangeUserByName
func ChangeUserByName(newUname string) (err error)ChangeUserByName change work user by new username.
func ChangeUserUIDGid
func ChangeUserUIDGid(newUid int, newGid int) (err error)ChangeUserUIDGid change work user by new username uid,gid
func ChangeUserUidGid
func ChangeUserUidGid(newUid int, newGid int) (err error)ChangeUserUidGid change work user by new username uid,gid
Deprecated: use ChangeUserUIDGid instead
func CurrentShell
func CurrentShell(onlyName bool) (path string)CurrentShell get current used shell env file.
eg "/bin/zsh" "/bin/bash". if onlyName=true, will return "zsh", "sh"
func CurrentUser
func CurrentUser() *user.UserCurrentUser must get current user
func EnvMapWith
func EnvMapWith(newEnv map[string]string) map[string]stringEnvMapWith like os.Environ, but will return key-value map[string]string data.
func EnvPaths
func EnvPaths() []stringEnvPaths get and split $PATH to []string
func Environ
func Environ() map[string]stringEnviron like os.Environ, but will returns key-value map[string]string data.
func ExecCmd
func ExecCmd(binName string, args []string, workDir ...string) (string, error)ExecCmd a command and return output.
Usage:
ExecCmd("ls", []string{"-al"})func ExecLine
func ExecLine(cmdLine string, workDir ...string) (string, error)ExecLine quick exec an command line string
func Executable
func Executable(binName string) (string, error)Executable find in the system, alias of FindExecutable()
Usage:
sys_util.Executable("sh")func ExpandHome
func ExpandHome(path string) stringExpandHome will parse `~` as user home dir path.
func ExpandPath
func ExpandPath(path string) stringExpandPath will parse `~` as user home dir path.
func ExternalIP
func ExternalIP() (string, error)ExternalIP func;
func FindExecutable
func FindExecutable(binName string) (string, error)FindExecutable in the system
Usage:
sys_util.FindExecutable("sh")func FlushExec
func FlushExec(bin string, args ...string) errorFlushExec instance
func GetCallerPackageName
func GetCallerPackageName(skips ...int) stringfunc GetCallerPackageNamePath
func GetCallerPackageNamePath(skips ...int) stringfunc GetLocalMainIP
func GetLocalMainIP() (string, int, error)GetLocalMainIP ...
func Getenv
func Getenv(name string, def ...string) stringGetenv get ENV value by key name, can with default value
func GoVersion
func GoVersion() stringGoVersion get go runtime version. eg: "1.18.2"
func HasExecutable
func HasExecutable(binName string) boolHasExecutable in the system
Usage:
HasExecutable("sh")func HasShellEnv
func HasShellEnv(shell string) boolHasShellEnv has shell env check.
Usage:
HasShellEnv("sh")
HasShellEnv("sh")func HomeDir
func HomeDir() stringHomeDir get user home dir path.
func Hostname
func Hostname() stringHostname is alias of os.Hostname, but ignore error
func IsConsole
func IsConsole(out io.Writer) boolIsConsole check out is in stderr/stdout/stdin
Usage:
sys_util.IsConsole(os.Stdout)func IsDarwin
func IsDarwin() boolIsDarwin system
func IsLinux
func IsLinux() boolIsLinux system
func IsMSys
func IsMSys() boolIsMSys msys(MINGW64) env,不一定支持颜色
func IsMac
func IsMac() boolIsMac system
func IsShellSpecialVar
func IsShellSpecialVar(c uint8) boolIsShellSpecialVar reports whether the character identifies a special shell variable such as $*.
func IsTerminal
func IsTerminal(fd uintptr) boolIsTerminal isatty check
Usage:
sys_util.IsTerminal(os.Stdout.Fd())func IsWin
func IsWin() boolIsWin system. linux windows darwin
func IsWindows
func IsWindows() boolIsWindows system. linux windows darwin
func Kill
func Kill(pid int, signal syscall.Signal) errorKill a process by pid
func LoginUser
func LoginUser() *user.UserLoginUser must get current user
func MustFindUser
func MustFindUser(uname string) *user.UserMustFindUser must find an system user by name
func NewCmd
func NewCmd(bin string, args ...string) *cmdr.CmdNewCmd instance
func Open
func Open(fileOrURL string) errorOpen file or url address
func OpenBrowser
func OpenBrowser(fileOrURL string) errorOpenBrowser file or url address
func OpenFile
func OpenFile(path string) errorOpenFile opens new browser window for the file path.
func OpenURL
func OpenURL(url string) errorOpenURL Open file or browser URL
- refers https://github.com/pkg/browser
Mac:
open 'https://github.com/inhere'Linux:
xdg-open URL
x-www-browser 'https://github.com/inhere'Windows:
cmd /c start https://github.com/inherefunc ProcessExists
func ProcessExists(pid int) boolProcessExists check process exists by pid
func QuickExec
func QuickExec(cmdLine string, workDir ...string) (string, error)QuickExec quick exec an simple command line
func SearchPath
func SearchPath(keywords string, limit int) []stringSearchPath search executable files in the system $PATH
Usage:
sys_util.SearchPath("go")func ShellExec
func ShellExec(cmdLine string, shells ...string) (string, error)ShellExec exec command by shell cmdLine. eg: "ls -al"
func StdIsTerminal
func StdIsTerminal() boolStdIsTerminal os.Stdout is terminal
func UHomeDir
func UHomeDir() stringUHomeDir get user home dir path.
func UserCacheDir
func UserCacheDir(subPath string) stringUserCacheDir will prepend user `$HOME/.cache` to subPath
func UserConfigDir
func UserConfigDir(subPath string) stringUserConfigDir will prepend user `$HOME/.config` to subPath
func UserDir
func UserDir(subPath string) stringUserDir will prepend user home dir to subPath
func UserHomeDir
func UserHomeDir() stringUserHomeDir is alias of os.UserHomeDir, but ignore error
func WorkDir
func WorkDir() stringWorkDir get
type CallerInfo
CallerInfo struct
type CallerInfo struct {
PC uintptr
Fc *runtime.Func
File string
Line int
}func CallersInfos
func CallersInfos(skip, num int, filters ...func(file string, fc *runtime.Func) bool) []*CallerInfoCallersInfos returns an array of the CallerInfo.
Usage:
cs := sys_util.CallersInfos(3, 2)
for _, ci := range cs {
fc := runtime.FuncForPC(pc)
// maybe need check fc = nil
fnName = fc.Name()
}func (*CallerInfo) String
func (ci *CallerInfo) String() stringString convert
type GoInfo
GoInfo define. alias of goinfo.GoInfo
type GoInfo = goinfo.GoInfofunc OsGoInfo
func OsGoInfo() (*GoInfo, error)OsGoInfo fetch and parse. alias of goinfo.OsGoInfo()
func ParseGoVersion
func ParseGoVersion(line string) (*GoInfo, error)ParseGoVersion get info by parse `go version` results. alias of goinfo.ParseGoVersion()
Examples:
line, err := sys_util.ExecLine("go version")
if err != nil {
return err
}
info, err := sys_util.ParseGoVersion()
dump.P(info)Generated by gomarkdoc