func LookPath(file string) (string, error) {
	path, err := exec.LookPath(file)
	if err != nil {
		return "", err
	}
	if filepath.Base(file) == file && !filepath.IsAbs(path) {
		return "", relError(file, path)
	}
	return path, nil
}
LookPath searches for an executable named file in the directories
named by the PATH environment variable. If file contains a slash,
it is tried directly and the PATH is not consulted. The result will be
an absolute path.

LookPath differs from exec.LookPath in its handling of PATH lookups,
which are used for file names without slashes. If exec.LookPath's
PATH lookup would have returned an executable from the current directory,
LookPath instead returns an error.
package execabs
import (
	"context"
	"fmt"
	"os/exec"
	"path/filepath"
	"reflect"
	"unsafe"
)
var ErrNotFound = exec.ErrNotFound
type Cmd = exec.Cmd
type Error = exec.Error
type ExitError = exec.ExitError
func relError(file, path string) error {
	return fmt.Errorf("%s resolves to executable in current directory (.%c%s)", file, filepath.Separator, path)
}