vendorify
diff --git a/go/vendor/github.com/shirou/gopsutil/load/load_linux.go b/go/vendor/github.com/shirou/gopsutil/load/load_linux.go
new file mode 100644
index 0000000..63c26a2
--- /dev/null
+++ b/go/vendor/github.com/shirou/gopsutil/load/load_linux.go
@@ -0,0 +1,87 @@
+// +build linux
+
+package load
+
+import (
+ "context"
+ "io/ioutil"
+ "strconv"
+ "strings"
+
+ "github.com/shirou/gopsutil/internal/common"
+)
+
+func Avg() (*AvgStat, error) {
+ return AvgWithContext(context.Background())
+}
+
+func AvgWithContext(ctx context.Context) (*AvgStat, error) {
+ filename := common.HostProc("loadavg")
+ line, err := ioutil.ReadFile(filename)
+ if err != nil {
+ return nil, err
+ }
+
+ values := strings.Fields(string(line))
+
+ load1, err := strconv.ParseFloat(values[0], 64)
+ if err != nil {
+ return nil, err
+ }
+ load5, err := strconv.ParseFloat(values[1], 64)
+ if err != nil {
+ return nil, err
+ }
+ load15, err := strconv.ParseFloat(values[2], 64)
+ if err != nil {
+ return nil, err
+ }
+
+ ret := &AvgStat{
+ Load1: load1,
+ Load5: load5,
+ Load15: load15,
+ }
+
+ return ret, nil
+}
+
+// Misc returnes miscellaneous host-wide statistics.
+// Note: the name should be changed near future.
+func Misc() (*MiscStat, error) {
+ return MiscWithContext(context.Background())
+}
+
+func MiscWithContext(ctx context.Context) (*MiscStat, error) {
+ filename := common.HostProc("stat")
+ out, err := ioutil.ReadFile(filename)
+ if err != nil {
+ return nil, err
+ }
+
+ ret := &MiscStat{}
+ lines := strings.Split(string(out), "\n")
+ for _, line := range lines {
+ fields := strings.Fields(line)
+ if len(fields) != 2 {
+ continue
+ }
+ v, err := strconv.ParseInt(fields[1], 10, 64)
+ if err != nil {
+ continue
+ }
+ switch fields[0] {
+ case "procs_running":
+ ret.ProcsRunning = int(v)
+ case "procs_blocked":
+ ret.ProcsBlocked = int(v)
+ case "ctxt":
+ ret.Ctxt = int(v)
+ default:
+ continue
+ }
+
+ }
+
+ return ret, nil
+}