| 200 | } |
| 201 | |
| 202 | func findExecutable(executableName string) (string, error) { |
| 203 | bin := os.Getenv("COMPOSE_E2E_BIN_PATH") |
| 204 | if bin == "" { |
| 205 | _, filename, _, _ := runtime.Caller(0) |
| 206 | buildPath := filepath.Join(filepath.Dir(filename), "..", "..", "bin", "build") |
| 207 | var err error |
| 208 | bin, err = filepath.Abs(filepath.Join(buildPath, executableName)) |
| 209 | if err != nil { |
| 210 | return "", err |
| 211 | } |
| 212 | } |
| 213 | |
| 214 | if _, err := os.Stat(bin); err == nil { |
| 215 | return bin, nil |
| 216 | } |
| 217 | return "", fmt.Errorf("looking for %q: %w", bin, fs.ErrNotExist) |
| 218 | } |
| 219 | |
| 220 | func findPluginExecutable(pluginExecutableName string) (string, error) { |
| 221 | dockerUserDir := ".docker/cli-plugins" |