func URLEncTool()

in tools/urlenc.go [28:73]


func URLEncTool() error {
	var (
		separator string
		encodeEnv bool
		helpFlag  bool
	)

	// Define command-line flags
	fs := flag.NewFlagSet("urlenc", flag.ContinueOnError)

	fs.Usage = printUrlEncHelp

	fs.StringVar(&separator, "s", "&", "Separator for concatenating the parameters")
	fs.BoolVar(&encodeEnv, "e", false, "Encode parameter values from environment variables")
	fs.BoolVar(&helpFlag, "help", false, "Print help message")
	fs.BoolVar(&helpFlag, "h", false, "Print help message")

	// Parse command-line flags
	err := fs.Parse(os.Args[1:])
	if err != nil {
		return err
	}

	if helpFlag {
		fs.Usage()
		return nil
	}

	// Get command-line arguments
	args := fs.Args()

	// Encode and concatenate parameters
	params := make([]string, 0)

	for _, arg := range args {
		if encodeEnv {
			arg = os.Getenv(arg)
		}
		encodedValue := url.QueryEscape(arg)
		params = append(params, encodedValue)
	}

	result := strings.Join(params, separator)
	fmt.Println(result)
	return nil
}