| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package osutil
- import (
- "os"
- "os/user"
- )
- // IsFile returns true if given path exists as a file (i.e. not a directory)
- // following any symlinks.
- func IsFile(path string) bool {
- f, e := os.Stat(path)
- if e != nil {
- return false
- }
- return !f.IsDir()
- }
- // IsDir returns true if given path is a directory following any symlinks, and
- // returns false when it's a file or does not exist.
- func IsDir(dir string) bool {
- f, e := os.Stat(dir)
- if e != nil {
- return false
- }
- return f.IsDir()
- }
- // Exist returns true if a file or directory exists following any symlinks.
- func Exist(path string) bool {
- _, err := os.Stat(path)
- return err == nil || os.IsExist(err)
- }
- // IsSymlink returns true if given path is a symbolic link.
- func IsSymlink(path string) bool {
- fileInfo, err := os.Lstat(path)
- if err != nil {
- return false
- }
- return fileInfo.Mode()&os.ModeSymlink != 0
- }
- // CurrentUsername returns the username of the current user.
- func CurrentUsername() string {
- username := os.Getenv("USER")
- if len(username) > 0 {
- return username
- }
- username = os.Getenv("USERNAME")
- if len(username) > 0 {
- return username
- }
- if user, err := user.Current(); err == nil {
- username = user.Username
- }
- return username
- }
|