diff options
-rw-r--r-- | libpod/info.go | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/libpod/info.go b/libpod/info.go index ab2865e85..03919eb1a 100644 --- a/libpod/info.go +++ b/libpod/info.go @@ -6,6 +6,7 @@ import ( "io/ioutil" "os" "runtime" + "strconv" "time" "github.com/docker/docker/pkg/system" @@ -51,7 +52,31 @@ func (r *Runtime) hostInfo() (map[string]interface{}, error) { if err != nil { return nil, errors.Wrapf(err, "error parsing system uptime") } - info["uptime"] = upDuration.String() + + hoursFound := false + var timeBuffer bytes.Buffer + var hoursBuffer bytes.Buffer + for _, elem := range upDuration.String() { + timeBuffer.WriteRune(elem) + if elem == 'h' || elem == 'm' { + timeBuffer.WriteRune(' ') + if elem == 'h' { + hoursFound = true + } + } + if !hoursFound { + hoursBuffer.WriteRune(elem) + } + } + + info["uptime"] = timeBuffer.String() + if hoursFound { + hours, err := strconv.ParseFloat(hoursBuffer.String(), 64) + if err == nil { + days := hours / 24 + info["uptime"] = fmt.Sprintf("%s (Approximately %.2f days)", info["uptime"], days) + } + } host, err := os.Hostname() if err != nil { |