webhookd/pkg/tools/script_resolver.go
2020-01-28 20:10:45 +00:00

23 lines
469 B
Go

package tools
import (
"errors"
"fmt"
"os"
"path"
"strings"
)
// ResolveScript is resolving the target script.
func ResolveScript(dir, name string) (string, error) {
script := path.Clean(path.Join(dir, fmt.Sprintf("%s.sh", name)))
if !strings.HasPrefix(script, dir) {
return "", errors.New("Invalid script path: " + name)
}
if _, err := os.Stat(script); os.IsNotExist(err) {
return "", errors.New("Script not found: " + script)
}
return script, nil
}