func disableSwapOnFstab()

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
}