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:
parent
1a820b9a10
commit
12b10a9f5a
@ -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
|
||||
}
|
||||
|
12
disk_test.go
12
disk_test.go
@ -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)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user