mirror of
https://github.com/grafana/grafana.git
synced 2025-01-27 16:57:14 -06:00
parent
10db47bf4c
commit
eb79436ab7
@ -90,6 +90,10 @@ func scan(pluginDir string) error {
|
||||
}
|
||||
|
||||
log.Info("Plugins: Scaning dir %s", pluginDir)
|
||||
if util.ContainsDistFolder(pluginDir) {
|
||||
log.Info("Plugins: Found dist folder in %s", pluginDir)
|
||||
pluginDir = filepath.Join(pluginDir, "dist")
|
||||
}
|
||||
|
||||
if err := util.Walk(pluginDir, true, true, scanner.walker); err != nil {
|
||||
if pluginDir != "data/plugins" {
|
||||
|
@ -44,8 +44,7 @@ func Walk(path string, followSymlinks bool, detectSymlinkInfiniteLoop bool, walk
|
||||
//
|
||||
//If resolvedPath is "", then we are not following symbolic links.
|
||||
//If symlinkPathsFollowed is not nil, then we need to detect infinite loop.
|
||||
func walk(path string, info os.FileInfo, resolvedPath string,
|
||||
symlinkPathsFollowed map[string]bool, walkFn WalkFunc) error {
|
||||
func walk(path string, info os.FileInfo, resolvedPath string, symlinkPathsFollowed map[string]bool, walkFn WalkFunc) error {
|
||||
if info == nil {
|
||||
return errors.New("Walk: Nil FileInfo passed")
|
||||
}
|
||||
@ -96,3 +95,23 @@ func walk(path string, info os.FileInfo, resolvedPath string,
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func ContainsDistFolder(path string) bool {
|
||||
info, err := os.Lstat(path)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
|
||||
if !info.IsDir() {
|
||||
return false
|
||||
}
|
||||
|
||||
list, err := ioutil.ReadDir(path)
|
||||
for _, fileInfo := range list {
|
||||
if fileInfo.IsDir() && fileInfo.Name() == "dist" {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user