Move skinstore loading to seperate file
This commit is contained in:
		
							
								
								
									
										39
									
								
								pluginmanager/skinstore.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								pluginmanager/skinstore.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,39 @@
 | 
			
		||||
package pluginmanager
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"errors"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"github.com/josephbmanley/OpenSkins-Common/datastore"
 | 
			
		||||
	log "github.com/sirupsen/logrus"
 | 
			
		||||
	"plugin"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// LoadedSkinstores is a list of all loaded skinstores
 | 
			
		||||
var LoadedSkinstores []datastore.Skinstore = []datastore.Skinstore{}
 | 
			
		||||
 | 
			
		||||
// LoadSkinstores searches plugins for a skinstore object
 | 
			
		||||
// and adds it to the 'skinstores` array
 | 
			
		||||
func LoadSkinstores(plugins []*plugin.Plugin) error {
 | 
			
		||||
 | 
			
		||||
	for _, plugin := range plugins {
 | 
			
		||||
 | 
			
		||||
		symSkinstore, err := plugin.Lookup("SkinstoreModule")
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			log.Fatalln(fmt.Sprintf("Failed to load plugin: %v", err.Error()))
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		var skinstore datastore.Skinstore
 | 
			
		||||
		skinstore, ok := symSkinstore.(datastore.Skinstore)
 | 
			
		||||
		if !ok {
 | 
			
		||||
			return errors.New("Invalid type for Skinstore in plugin")
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		err = skinstore.Initialize()
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		LoadedSkinstores = append(LoadedSkinstores, skinstore)
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user