Bumps [github.com/hashicorp/terraform-plugin-sdk/v2](https://github.com/hashicorp/terraform-plugin-sdk) from 2.26.1 to 2.27.0. - [Release notes](https://github.com/hashicorp/terraform-plugin-sdk/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-sdk/compare/v2.26.1...v2.27.0) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-sdk/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
49 lines
905 B
Go
49 lines
905 B
Go
// Copyright (c) HashiCorp, Inc.
|
|
// SPDX-License-Identifier: MPL-2.0
|
|
|
|
//go:build !windows
|
|
// +build !windows
|
|
|
|
package fs
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"os/exec"
|
|
"path/filepath"
|
|
)
|
|
|
|
func lookupDirs(extraDirs []string) []string {
|
|
pathVar := os.Getenv("PATH")
|
|
dirs := filepath.SplitList(pathVar)
|
|
for _, ep := range extraDirs {
|
|
dirs = append(dirs, ep)
|
|
}
|
|
return dirs
|
|
}
|
|
|
|
func findFile(dirs []string, file string, f fileCheckFunc) (string, error) {
|
|
for _, dir := range dirs {
|
|
if dir == "" {
|
|
// Unix shell semantics: path element "" means "."
|
|
dir = "."
|
|
}
|
|
path := filepath.Join(dir, file)
|
|
if err := f(path); err == nil {
|
|
return path, nil
|
|
}
|
|
}
|
|
return "", fmt.Errorf("%s: %w", file, exec.ErrNotFound)
|
|
}
|
|
|
|
func checkExecutable(file string) error {
|
|
d, err := os.Stat(file)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if m := d.Mode(); !m.IsDir() && m&0111 != 0 {
|
|
return nil
|
|
}
|
|
return os.ErrPermission
|
|
}
|