btrfs/mtab/mtab.go
Denys Smirnov b56d643295 some docs
2016-10-05 16:45:00 +03:00

44 lines
734 B
Go

// Package mtab contains tools to work with /etc/mtab file.
package mtab
import (
"bufio"
"io"
"os"
"strings"
)
type MountPoint struct {
Dev string
Mount string
Type string
Opts string
}
// Mounts returns a list of mount point from /etc/mtab.
func Mounts() ([]MountPoint, error) {
file, err := os.Open("/etc/mtab")
if err != nil {
return nil, err
}
defer file.Close()
r := bufio.NewReader(file)
var out []MountPoint
for {
line, err := r.ReadString('\n')
if err == io.EOF {
break
} else if err != nil {
return nil, err
}
fields := strings.Fields(line)
out = append(out, MountPoint{
Dev: fields[0],
Mount: fields[1],
Type: fields[2],
Opts: fields[3],
})
}
return out, nil
}