func()

in pkg/fix_local_shell.go [120:152]


func (l *LocalShellFix) createTmpFileForInlines(shebang string, inlines []string) (string, error) {
	tmp, err := os.CreateTemp("", "grept-local-shell")
	if err != nil {
		return "", err
	}
	defer func() {
		_ = tmp.Close()
	}()
	writer := bufio.NewWriter(tmp)
	_, err = writer.WriteString(fmt.Sprintf("#!%s\n", shebang))
	if err != nil {
		return tmp.Name(), err
	}
	for _, inline := range inlines {
		_, err := writer.WriteString(inline)
		if err != nil {
			return tmp.Name(), err
		}

		_, err = writer.WriteString("\n")
		if err != nil {
			return tmp.Name(), err
		}
	}
	if err := writer.Flush(); err != nil {
		return tmp.Name(), fmt.Errorf("error preparing inlines script %+v", err)
	}
	err = os.Chmod(tmp.Name(), 0700)
	if err != nil {
		return tmp.Name(), err
	}
	return tmp.Name(), nil
}