func Import()

in internal/client/connections/connectors.go [984:1026]


func Import(folder string, createSecret bool, wait bool) (err error) {
	apiclient.ClientPrintHttpResponse.Set(false)
	defer apiclient.ClientPrintHttpResponse.Set(apiclient.GetCmdPrintHttpResponseSetting())
	errs := []string{}

	err = filepath.Walk(folder, func(path string, info os.FileInfo, err error) error {
		if err != nil {
			clilog.Warning.Println("connection folder not found")
			return nil
		}
		if info.IsDir() {
			return nil
		}
		if filepath.Ext(path) != ".json" {
			return nil
		}
		name := strings.TrimSuffix(filepath.Base(path), filepath.Ext(filepath.Base(path)))
		content, err := os.ReadFile(path)
		if err != nil {
			return err
		}

		if _, err := Get(name, "", false, false); err != nil { // create only if connection doesn't exist
			_, err = Create(name, content, "", "", "", false, createSecret, wait)
			if err != nil {
				errs = append(errs, err.Error())
			}
			clilog.Info.Printf("creating connection %s\n", name)
		} else {
			clilog.Info.Printf("connection %s already exists, skipping creations\n", name)
		}

		return nil
	})
	if err != nil {
		return nil
	}

	if len(errs) > 0 {
		return errors.New(strings.Join(errs, "\n"))
	}
	return nil
}