in internal/cmd/integrations/apply.go [402:448]
func processCustomConnectors(customConnectorsFolder 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(customConnectorsFolder); err == nil && stat.IsDir() {
// create any custom connectors
err = filepath.Walk(customConnectorsFolder, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if !info.IsDir() {
customConnectionFile := filepath.Base(path)
if rJSONFiles.MatchString(customConnectionFile) {
customConnectionDetails := strings.Split(strings.TrimSuffix(customConnectionFile, filepath.Ext(customConnectionFile)), fileSplitter)
// the file format is name-version.json
if len(customConnectionDetails) == 2 {
clilog.Info.Printf("Found configuration for custom connection: %v\n", customConnectionFile)
contents, err := utils.ReadFile(path)
if err != nil {
return err
}
clilog.Info.Printf("Creating custom connector: %s\n", customConnectionFile)
if _, err := connections.GetCustomVersion(customConnectionDetails[0],
customConnectionDetails[1], false); err != nil {
// didn't find the custom connector, create it
if err = connections.CreateCustomWithVersion(customConnectionDetails[0],
customConnectionDetails[1], contents, serviceAccountName, serviceAccountProject); err != nil {
return err
}
} else {
clilog.Info.Printf("Custom Connector %s already exists\n", customConnectionFile)
}
}
}
}
return nil
})
}
return nil
}