Commit eb79436a by bergquist

feat(plugins): mounts dist folder if exists in plugin

closes #4230
parent 10db47bf
...@@ -90,6 +90,10 @@ func scan(pluginDir string) error { ...@@ -90,6 +90,10 @@ func scan(pluginDir string) error {
} }
log.Info("Plugins: Scaning dir %s", 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" {
......
...@@ -44,8 +44,7 @@ func Walk(path string, followSymlinks bool, detectSymlinkInfiniteLoop bool, walk ...@@ -44,8 +44,7 @@ func Walk(path string, followSymlinks bool, detectSymlinkInfiniteLoop bool, walk
// //
//If resolvedPath is "", then we are not following symbolic links. //If resolvedPath is "", then we are not following symbolic links.
//If symlinkPathsFollowed is not nil, then we need to detect infinite loop. //If symlinkPathsFollowed is not nil, then we need to detect infinite loop.
func walk(path string, info os.FileInfo, resolvedPath string, func walk(path string, info os.FileInfo, resolvedPath string, symlinkPathsFollowed map[string]bool, walkFn WalkFunc) error {
symlinkPathsFollowed map[string]bool, walkFn WalkFunc) error {
if info == nil { if info == nil {
return errors.New("Walk: Nil FileInfo passed") return errors.New("Walk: Nil FileInfo passed")
} }
...@@ -96,3 +95,23 @@ func walk(path string, info os.FileInfo, resolvedPath string, ...@@ -96,3 +95,23 @@ func walk(path string, info os.FileInfo, resolvedPath string,
} }
return nil 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
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment