func TrimRightFile()

in helper/files.go [176:224]


func TrimRightFile(path string, overwrite bool) error {
	f, err := os.Open(path)
	if err != nil {
		logrus.Errorf("unable to open file %s\n%v", f, err)
	}
	defer f.Close()

	tPath := path + ".tmp"
	tf, err := os.OpenFile(tPath, os.O_APPEND|os.O_CREATE|os.O_WRONLY, os.ModePerm)
	if err != nil {
		logrus.Error(err)
	}
	defer tf.Close()

	scanner := bufio.NewScanner(f)
	for scanner.Scan() {
		tr := strings.TrimRight(scanner.Text(), " ")

		if runtime.GOOS == "windows" {
			// convert LF to CRLF
			if _, err := tf.WriteString(tr + "\r\n"); err != nil {
				logrus.Errorf("unable write trimmed string to temporary file\n%v", err)
				return err
			}
		} else {
			// convert CRLF to LF
			if _, err := tf.WriteString(tr + "\n"); err != nil {
				logrus.Errorf("unable write trimmed string to temporary file\n%v", err)
				return err
			}
		}

	}

	if err := scanner.Err(); err != nil {
		logrus.Errorf("unable to use scanner\n%v", err)
		return err
	}

	if overwrite {
		if err := CopyFileTo(tPath, path); err != nil {
			logrus.Errorf("unable to replace original file with temporary\n%v", err)
			return err
		}
		defer os.Remove(tPath)
	}

	return nil
}