mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
				
	
	
		
			26 lines
		
	
	
		
			614 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			614 B
		
	
	
	
		
			Go
		
	
	
	
package datasource
 | 
						|
 | 
						|
import (
 | 
						|
	"fmt"
 | 
						|
	"strings"
 | 
						|
)
 | 
						|
 | 
						|
func getDatasourceGroupNameFromPluginID(pluginId string) (string, error) {
 | 
						|
	if pluginId == "" {
 | 
						|
		return "", fmt.Errorf("bad pluginID (empty)")
 | 
						|
	}
 | 
						|
	parts := strings.Split(pluginId, "-")
 | 
						|
	if len(parts) == 1 {
 | 
						|
		return fmt.Sprintf("%s.datasource.grafana.app", parts[0]), nil
 | 
						|
	}
 | 
						|
 | 
						|
	last := parts[len(parts)-1]
 | 
						|
	if last != "datasource" {
 | 
						|
		return "", fmt.Errorf("bad pluginID (%s)", pluginId)
 | 
						|
	}
 | 
						|
	if parts[0] == "grafana" {
 | 
						|
		parts = parts[1:] // strip the first value
 | 
						|
	}
 | 
						|
	return fmt.Sprintf("%s.datasource.grafana.app", strings.Join(parts[:len(parts)-1], "-")), nil
 | 
						|
}
 |