提交 12b10a9f 编写于 作者: W WAKAYAMA Shirou

implements disk_partitions on linux using /etc/mtab

上级 1a820b9a
......@@ -65,7 +65,7 @@ Current Status
- cpu_count (linux, freebsd, windows)
- virtual_memory (linux, windows)
- swap_memory (linux)
- disk_partitions (freebsd, windows)
- disk_partitions (linux, freebsd, windows)
- disk_usage (linux, freebsd, windows)
- net_io_counters (linux)
- boot_time (linux, freebsd, windows(but little broken))
......
......@@ -2,8 +2,34 @@
package gopsutil
import (
"strings"
)
const(
MNT_WAIT = 1
)
// Get disk partitions.
// should use setmntent(3) but this implement use /etc/mtab file
func Disk_partitions(all bool) ([]Disk_partitionStat, error) {
ret := make([]Disk_partitionStat, 0)
filename := "/etc/mtab"
lines, err := ReadLines(filename)
if err != nil{
return ret, err
}
for _, line := range lines{
fields := strings.Fields(line)
d := Disk_partitionStat{
Mountpoint: fields[1],
Fstype: fields[2],
Opts: fields[3],
}
ret = append(ret, d)
}
return ret, nil
}
package gopsutil
import (
"encoding/json"
"fmt"
"runtime"
"testing"
)
......@@ -12,19 +10,17 @@ func TestDisk_usage(t *testing.T) {
if runtime.GOOS == "windows" {
path = "C:"
}
v, err := Disk_usage(path)
_, err := Disk_usage(path)
if err != nil {
t.Errorf("error %v", err)
}
d, _ := json.Marshal(v)
fmt.Printf("%s\n", d)
// d, _ := json.Marshal(v)
// fmt.Printf("%s\n", d)
}
func TestDisk_partitions(t *testing.T) {
v, err := Disk_partitions(false)
_, err := Disk_partitions(false)
if err != nil {
t.Errorf("error %v", err)
}
d, _ := json.Marshal(v)
fmt.Printf("%s\n", d)
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册