github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/integrations/integrations.go (about)

     1  package integrations
     2  
     3  import (
     4  	"embed"
     5  	"fmt"
     6  
     7  	"github.com/lmorg/murex/config/defaults"
     8  )
     9  
    10  var resources map[string]*embed.FS
    11  
    12  func init() {
    13  	resources = make(map[string]*embed.FS)
    14  }
    15  
    16  func Profiles() []*defaults.DefaultProfileT {
    17  	var profiles []*defaults.DefaultProfileT
    18  
    19  	for resName, res := range resources {
    20  
    21  		files, err := res.ReadDir(`.`)
    22  		if err != nil {
    23  			panic(fmt.Sprintf("err in res.ReadDir(`.`) against resources[%s]: %s", resName, err.Error()))
    24  		}
    25  
    26  		for _, f := range files {
    27  			b, err := res.ReadFile(f.Name())
    28  			if err != nil {
    29  				panic(fmt.Sprintf("err in res.ReadFile(%s) against resources[%s]: %s", f.Name(), resName, err.Error()))
    30  			}
    31  
    32  			profiles = append(profiles, &defaults.DefaultProfileT{
    33  				Name:  f.Name()[:len(f.Name())-3], // strip ".mx" from filename
    34  				Block: b,
    35  			})
    36  		}
    37  
    38  	}
    39  
    40  	return profiles
    41  }