diff options
| author | Joseph Richey <joerichey94@gmail.com> | 2017-08-30 04:49:39 -0700 |
|---|---|---|
| committer | Joe Richey <joerichey@google.com> | 2017-08-30 15:35:32 -0700 |
| commit | e37a80cd9b601adc16894d3b6fb526ae8f4c846b (patch) | |
| tree | 111fc5538902439858f65f302d86cd4234fb035b /util | |
| parent | 221b1b3617c78f54f972aca24e4d15ea85b9ef29 (diff) | |
util: Added parsing and effective user functions
Diffstat (limited to 'util')
| -rw-r--r-- | util/util.go | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/util/util.go b/util/util.go index c02ea0e..3de4a1a 100644 --- a/util/util.go +++ b/util/util.go @@ -27,6 +27,8 @@ import ( "bufio" "math" "os" + "os/user" + "strconv" "unsafe" ) @@ -105,3 +107,23 @@ func ReadLine() (string, error) { scanner.Scan() return scanner.Text(), scanner.Err() } + +// AtoiOrPanic converts a string to an int or it panics. Should only be used in +// situations where the input MUST be a decimal number. +func AtoiOrPanic(input string) int { + i, err := strconv.Atoi(input) + if err != nil { + panic(err) + } + return i +} + +// EffectiveUser returns the user entry corresponding to the effective user. +func EffectiveUser() (*user.User, error) { + return user.LookupId(strconv.Itoa(os.Geteuid())) +} + +// IsUserRoot checks if the effective user is root. +func IsUserRoot() bool { + return os.Geteuid() == 0 +} |