- fd, err := os.Open(path.Join(cwd, doFile))
- if err != nil {
- cleanup()
- return TgtErr{tgtOrig, err}
- }
- buf := make([]byte, 512)
- n, err := fd.Read(buf)
- if err != nil {
- cleanup()
- return TgtErr{tgtOrig, err}
- }
- if n > 3 && string(buf[:3]) == "#!/" {
- // Shebanged
- t := string(buf[2:n])
- nlIdx := strings.Index(t, "\n")
- if nlIdx == -1 {
- cleanup()
- return TgtErr{tgtOrig, errors.New("not fully read shebang")}
- }
- args = strings.Split(t[:nlIdx], " ")
- cmdName, args = args[0], args[1:]