mirror of
https://github.com/dennwc/btrfs
synced 2025-01-17 21:10:47 +00:00
44 lines
734 B
Go
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
|
|
}
|