func parseFlags()

in internal/mode/chunk/chunk.go [146:178]


func parseFlags() (CommandOptions, error) {
	var opts CommandOptions
	var adapterStr string

	flag.StringVar(&opts.OptionsJSON, "options", "", "JSON string of options for chunking")

	validAdaptersList := make([]string, len(validAdapters))
	for i, adapter := range validAdapters {
		validAdaptersList[i] = string(adapter)
	}
	flag.StringVar(&adapterStr, "adapter", "", fmt.Sprintf("Adapter to use (%s)", strings.Join(validAdaptersList, ", ")))
	flag.StringVar(&opts.ConnectionJSON, "connection", "", "JSON string of connection parameters")
	flag.Parse()

	if adapterStr == "" {
		return CommandOptions{}, fmt.Errorf("-adapter flag is required")
	}

	if opts.OptionsJSON == "" {
		return CommandOptions{}, fmt.Errorf("-options flag is required")
	}

	if opts.ConnectionJSON == "" {
		return CommandOptions{}, fmt.Errorf("-connection flag is required")
	}

	opts.AdapterType = AdapterType(adapterStr)
	if !isValidAdapter(opts.AdapterType) {
		return CommandOptions{}, fmt.Errorf("invalid adapter: %s, must be one of: %s", opts.AdapterType, strings.Join(validAdaptersList, ", "))
	}

	return opts, nil
}