podman/vendor/github.com/containers/buildah/pkg/util/uptime_linux.go

29 lines
477 B
Go

package util
import (
"bytes"
"errors"
"time"
"os"
)
func ReadUptime() (time.Duration, error) {
buf, err := os.ReadFile("/proc/uptime")
if err != nil {
return 0, err
}
f := bytes.Fields(buf)
if len(f) < 1 {
return 0, errors.New("invalid uptime")
}
// Convert uptime in seconds to a human-readable format
up := string(f[0])
upSeconds := up + "s"
upDuration, err := time.ParseDuration(upSeconds)
if err != nil {
return 0, err
}
return upDuration, nil
}