1
0
mirror of https://github.com/shirou/gopsutil.git synced 2025-04-26 13:48:59 +08:00

implements disk_partitions on linux using /etc/mtab

This commit is contained in:
WAKAYAMA Shirou 2014-04-29 14:15:00 +09:00
parent 1a820b9a10
commit 12b10a9f5a
3 changed files with 31 additions and 9 deletions

View File

@ -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))

View File

@ -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
}

View File

@ -1,8 +1,6 @@
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)
}