in internal/cmd/integrations/apply.go [490:539]
func processSfdcChannels(sfdcchannelsFolder string) (err error) {
var stat fs.FileInfo
var fileSplitter string
rJSONFiles := regexp.MustCompile(`(\S*)\.json`)
if useUnderscore {
fileSplitter = utils.LegacyFileSplitter
} else {
fileSplitter = utils.DefaultFileSplitter
}
if stat, err = os.Stat(sfdcchannelsFolder); err == nil && stat.IsDir() {
// create any sfdc channels
err = filepath.Walk(sfdcchannelsFolder, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if !info.IsDir() {
channelFile := filepath.Base(path)
if rJSONFiles.MatchString(channelFile) {
clilog.Info.Printf("Found configuration for sfdc channel: %s\n", channelFile)
//channelFile name could be instanceName_channelName.json or instanceName_channelName_e.json
fileName := getFilenameWithoutExtension(channelFile) //instanceName_channelName or instanceName_channelName_e
sfdcNames := strings.Split(fileName, fileSplitter)
name := fileName[len(sfdcNames[0])+len(fileSplitter):] //channelName or channelName_e
version, _, err := sfdc.FindChannel(name, sfdcNames[0])
// create the instance only if the sfdc channel is not found
if err != nil {
channelBytes, err := utils.ReadFile(path)
if err != nil {
return err
}
clilog.Info.Printf("Creating sfdc channel: %s\n", channelFile)
_, err = sfdc.CreateChannelFromContent(version, channelBytes)
if err != nil {
return nil
}
} else {
clilog.Info.Printf("sfdc channel %s already exists\n", channelFile)
}
}
}
return nil
})
if err != nil {
return err
}
}
return nil
}