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
}