mirror of
https://github.com/taigrr/wtf
synced 2025-01-18 04:03:14 -08:00
Split up logger and widget
This allows us to use the logger from the wtf directory For example when trying to debug sort ordering in focus_tracker
This commit is contained in:
49
utils/homedir.go
Normal file
49
utils/homedir.go
Normal file
@@ -0,0 +1,49 @@
|
||||
// Package homedir helps with detecting and expanding the user's home directory
|
||||
|
||||
// Copied (mostly) verbatim from https://github.com/Atrox/homedir
|
||||
|
||||
package utils
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"os/user"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
// Dir returns the home directory for the executing user.
|
||||
// An error is returned if a home directory cannot be detected.
|
||||
func Home() (string, error) {
|
||||
currentUser, err := user.Current()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
if currentUser.HomeDir == "" {
|
||||
return "", errors.New("cannot find user-specific home dir")
|
||||
}
|
||||
|
||||
return currentUser.HomeDir, nil
|
||||
}
|
||||
|
||||
// Expand expands the path to include the home directory if the path
|
||||
// is prefixed with `~`. If it isn't prefixed with `~`, the path is
|
||||
// returned as-is.
|
||||
func ExpandHomeDir(path string) (string, error) {
|
||||
if len(path) == 0 {
|
||||
return path, nil
|
||||
}
|
||||
|
||||
if path[0] != '~' {
|
||||
return path, nil
|
||||
}
|
||||
|
||||
if len(path) > 1 && path[1] != '/' && path[1] != '\\' {
|
||||
return "", errors.New("cannot expand user-specific home dir")
|
||||
}
|
||||
|
||||
dir, err := Home()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return filepath.Join(dir, path[1:]), nil
|
||||
}
|
||||
Reference in New Issue
Block a user