MCPcopy Create free account
hub / github.com/cloudquery/cloudquery / selectSource

Function selectSource

cli/cmd/init.go:213–237  ·  view source on GitHub ↗
(allPlugins []cqapi.ListPlugin, acceptDefaults bool)

Source from the content-addressed store, hash-verified

211}
212
213func selectSource(allPlugins []cqapi.ListPlugin, acceptDefaults bool) (string, error) {
214 officialSources := lo.Filter(allPlugins, officialReleasedPluginsByKind(cqapi.PluginKindSource))
215 slices.SortStableFunc(officialSources, pluginsSorter(sourcesOrder))
216 if acceptDefaults {
217 return officialSources[0].Name, nil
218 }
219
220 prompt := promptui.Select{
221 Label: "Select Source Plugin",
222 Items: lo.Map(officialSources, pluginName),
223 Stdin: os.Stdin,
224 Size: 10,
225 StartInSearchMode: true,
226 Searcher: func(input string, index int) bool {
227 return strings.Contains(officialSources[index].Name, input)
228 },
229 }
230
231 _, source, err := prompt.Run()
232 if err != nil {
233 return "", fmt.Errorf("source prompt failed %w", err)
234 }
235
236 return source, nil
237}
238
239func selectDestination(allPlugins []cqapi.ListPlugin, acceptDefaults bool) (string, error) {
240 officialDestinations := lo.Filter(allPlugins, officialReleasedPluginsByKind(cqapi.PluginKindDestination))

Callers 1

initCmdFunction · 0.85

Calls 4

pluginsSorterFunction · 0.85
RunMethod · 0.80
ErrorfMethod · 0.80

Tested by

no test coverage detected