diff options
author | Wolfy-J <[email protected]> | 2018-06-06 13:39:07 +0300 |
---|---|---|
committer | Wolfy-J <[email protected]> | 2018-06-06 13:39:07 +0300 |
commit | 7067d593f243e86a54f4ffd87a06c744e5636e07 (patch) | |
tree | 83ba4ab9503059e2383fe40a04be6f1e7d2b9f2f /user.go | |
parent | b49a888579be9dfc33069d168083c54fb354e24c (diff) |
command factory
Diffstat (limited to 'user.go')
-rw-r--r-- | user.go | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/user.go b/user.go new file mode 100644 index 00000000..1d47b5fb --- /dev/null +++ b/user.go @@ -0,0 +1,31 @@ +package roadrunner + +import ( + "os/user" + "fmt" +) + +// resolveUser attempt to find system user by it's name or uid. +func resolveUser(u string) (usr *user.User, err error) { + usr, err = user.LookupId(u) + if usr != nil { + return usr, nil + } + + return user.Lookup(u) +} + +// resolveUser attempt to find system group by it's name or uid. +func resolveGroup(g string) (grp *user.Group, err error) { + grp, err = user.LookupGroupId(g) + if grp != nil && grp.Name != "nogroup" { + return grp, nil + } + + grp, err = user.LookupGroup(g) + if grp != nil && grp.Name != "nogroup" { + return grp, nil + } + + return nil, fmt.Errorf("no such group %s", g) +} |