mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Merge pull request #4238 from bergquist/mount_dist_folder
fix(plugins): fixes missed dist loading for plugindir
This commit is contained in:
commit
35a502f309
@ -89,12 +89,6 @@ func scan(pluginDir string) error {
|
|||||||
pluginPath: pluginDir,
|
pluginPath: pluginDir,
|
||||||
}
|
}
|
||||||
|
|
||||||
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 err := util.Walk(pluginDir, true, true, scanner.walker); err != nil {
|
||||||
if pluginDir != "data/plugins" {
|
if pluginDir != "data/plugins" {
|
||||||
log.Warn("Could not scan dir \"%v\" error: %s", pluginDir, err)
|
log.Warn("Could not scan dir \"%v\" error: %s", pluginDir, err)
|
||||||
|
@ -80,35 +80,50 @@ func walk(path string, info os.FileInfo, resolvedPath string, symlinkPathsFollow
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return walkFn(resolvedPath, info, err)
|
return walkFn(resolvedPath, info, err)
|
||||||
}
|
}
|
||||||
|
var subFiles = make([]subFile, 0)
|
||||||
for _, fileInfo := range list {
|
for _, fileInfo := range list {
|
||||||
path2 := filepath.Join(path, fileInfo.Name())
|
path2 := filepath.Join(path, fileInfo.Name())
|
||||||
var resolvedPath2 string
|
var resolvedPath2 string
|
||||||
if resolvedPath != "" {
|
if resolvedPath != "" {
|
||||||
resolvedPath2 = filepath.Join(resolvedPath, fileInfo.Name())
|
resolvedPath2 = filepath.Join(resolvedPath, fileInfo.Name())
|
||||||
}
|
}
|
||||||
err = walk(path2, fileInfo, resolvedPath2, symlinkPathsFollowed, walkFn)
|
subFiles = append(subFiles, subFile{path: path2, resolvedPath: resolvedPath2, fileInfo: fileInfo})
|
||||||
|
}
|
||||||
|
|
||||||
|
if containsDistFolder(subFiles) {
|
||||||
|
err := walk(
|
||||||
|
filepath.Join(path, "dist"),
|
||||||
|
info,
|
||||||
|
filepath.Join(resolvedPath, "dist"),
|
||||||
|
symlinkPathsFollowed,
|
||||||
|
walkFn)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for _, p := range subFiles {
|
||||||
|
err = walk(p.path, p.fileInfo, p.resolvedPath, symlinkPathsFollowed, walkFn)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func ContainsDistFolder(path string) bool {
|
type subFile struct {
|
||||||
info, err := os.Lstat(path)
|
path, resolvedPath string
|
||||||
if err != nil {
|
fileInfo os.FileInfo
|
||||||
return false
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if !info.IsDir() {
|
func containsDistFolder(subFiles []subFile) bool {
|
||||||
return false
|
for _, p := range subFiles {
|
||||||
}
|
if p.fileInfo.IsDir() && p.fileInfo.Name() == "dist" {
|
||||||
|
|
||||||
list, err := ioutil.ReadDir(path)
|
|
||||||
for _, fileInfo := range list {
|
|
||||||
if fileInfo.IsDir() && fileInfo.Name() == "dist" {
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user