in internal/system/swap.go [149:179]
func disableSwapOnFstab() error {
file, err := os.OpenFile("/etc/fstab", os.O_RDWR, 0o644)
if err != nil {
return err
}
defer file.Close()
var bs []byte
buf := bytes.NewBuffer(bs)
scanner := bufio.NewScanner(file)
lineNo := 0
for scanner.Scan() {
lineNo++
fstabMount, err := parseFstabLine(scanner.Text())
if err != nil {
return fmt.Errorf("/etc/fstab syntax error at line %d: %s", lineNo, err)
}
if fstabMount == nil || fstabMount != nil && fstabMount.vfsType != "swap" {
buf.WriteString(scanner.Text() + "\n")
}
}
if err := file.Truncate(0); err != nil {
return err
}
if _, err := file.Seek(0, 0); err != nil {
return err
}
_, err = buf.WriteTo(file)
return err
}