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)
|
- cpu_count (linux, freebsd, windows)
|
||||||
- virtual_memory (linux, windows)
|
- virtual_memory (linux, windows)
|
||||||
- swap_memory (linux)
|
- swap_memory (linux)
|
||||||
- disk_partitions (freebsd, windows)
|
- disk_partitions (linux, freebsd, windows)
|
||||||
- disk_usage (linux, freebsd, windows)
|
- disk_usage (linux, freebsd, windows)
|
||||||
- net_io_counters (linux)
|
- net_io_counters (linux)
|
||||||
- boot_time (linux, freebsd, windows(but little broken))
|
- boot_time (linux, freebsd, windows(but little broken))
|
||||||
|
@ -2,8 +2,34 @@
|
|||||||
|
|
||||||
package gopsutil
|
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) {
|
func Disk_partitions(all bool) ([]Disk_partitionStat, error) {
|
||||||
ret := make([]Disk_partitionStat, 0)
|
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
|
return ret, nil
|
||||||
}
|
}
|
||||||
|
12
disk_test.go
12
disk_test.go
@ -1,8 +1,6 @@
|
|||||||
package gopsutil
|
package gopsutil
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
|
||||||
"runtime"
|
"runtime"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
@ -12,19 +10,17 @@ func TestDisk_usage(t *testing.T) {
|
|||||||
if runtime.GOOS == "windows" {
|
if runtime.GOOS == "windows" {
|
||||||
path = "C:"
|
path = "C:"
|
||||||
}
|
}
|
||||||
v, err := Disk_usage(path)
|
_, err := Disk_usage(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("error %v", err)
|
t.Errorf("error %v", err)
|
||||||
}
|
}
|
||||||
d, _ := json.Marshal(v)
|
// d, _ := json.Marshal(v)
|
||||||
fmt.Printf("%s\n", d)
|
// fmt.Printf("%s\n", d)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDisk_partitions(t *testing.T) {
|
func TestDisk_partitions(t *testing.T) {
|
||||||
v, err := Disk_partitions(false)
|
_, err := Disk_partitions(false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("error %v", err)
|
t.Errorf("error %v", err)
|
||||||
}
|
}
|
||||||
d, _ := json.Marshal(v)
|
|
||||||
fmt.Printf("%s\n", d)
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user