Initial QSfera import
This commit is contained in:
+73
@@ -0,0 +1,73 @@
|
||||
package sysutil
|
||||
|
||||
import (
|
||||
"os"
|
||||
"os/user"
|
||||
|
||||
"github.com/gookit/goutil/internal/comfunc"
|
||||
)
|
||||
|
||||
// MustFindUser must find a system user by name
|
||||
func MustFindUser(uname string) *user.User {
|
||||
u, err := user.Lookup(uname)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return u
|
||||
}
|
||||
|
||||
// LoginUser must get current user, will panic if error
|
||||
func LoginUser() *user.User { return CurrentUser() }
|
||||
|
||||
// CurrentUser must get current user, will panic if error
|
||||
func CurrentUser() *user.User {
|
||||
u, err := user.Current()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return u
|
||||
}
|
||||
|
||||
// UHomeDir get user home dir path, ignore error. (by user.Current)
|
||||
func UHomeDir() string {
|
||||
u, err := user.Current()
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
return u.HomeDir
|
||||
}
|
||||
|
||||
// homeDir cache
|
||||
var _homeDir string
|
||||
|
||||
// UserHomeDir is alias of os.UserHomeDir, but ignore error.(by os.UserHomeDir)
|
||||
func UserHomeDir() string {
|
||||
if _homeDir == "" {
|
||||
_homeDir, _ = os.UserHomeDir()
|
||||
}
|
||||
return _homeDir
|
||||
}
|
||||
|
||||
// HomeDir get user home dir path.
|
||||
func HomeDir() string { return UserHomeDir() }
|
||||
|
||||
// UserDir will prepend user home dir to subPaths
|
||||
func UserDir(subPaths ...string) string {
|
||||
return comfunc.JoinPaths2(UserHomeDir(), subPaths)
|
||||
}
|
||||
|
||||
// UserCacheDir will prepend user `$HOME/.cache` to subPaths
|
||||
func UserCacheDir(subPaths ...string) string {
|
||||
return comfunc.JoinPaths3(UserHomeDir(), ".cache", subPaths)
|
||||
}
|
||||
|
||||
// UserConfigDir will prepend user `$HOME/.config` to subPath
|
||||
func UserConfigDir(subPaths ...string) string {
|
||||
return comfunc.JoinPaths3(UserHomeDir(), ".config", subPaths)
|
||||
}
|
||||
|
||||
// ExpandPath will parse `~` as user home dir path.
|
||||
func ExpandPath(path string) string { return comfunc.ExpandHome(path) }
|
||||
|
||||
// ExpandHome will parse `~` as user home dir path.
|
||||
func ExpandHome(path string) string { return comfunc.ExpandHome(path) }
|
||||
Reference in New Issue
Block a user