summaryrefslogtreecommitdiff
path: root/user.go
diff options
context:
space:
mode:
authorWolfy-J <[email protected]>2018-06-06 13:39:07 +0300
committerWolfy-J <[email protected]>2018-06-06 13:39:07 +0300
commit7067d593f243e86a54f4ffd87a06c744e5636e07 (patch)
tree83ba4ab9503059e2383fe40a04be6f1e7d2b9f2f /user.go
parentb49a888579be9dfc33069d168083c54fb354e24c (diff)
command factory
Diffstat (limited to 'user.go')
-rw-r--r--user.go31
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)
+}