mirror of
https://github.com/imgproxy/imgproxy.git
synced 2025-02-17 11:55:32 +02:00
41 lines
636 B
Go
41 lines
636 B
Go
package options
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/imgproxy/imgproxy/v3/config"
|
|
)
|
|
|
|
type urlOption struct {
|
|
Name string
|
|
Args []string
|
|
}
|
|
|
|
type urlOptions []urlOption
|
|
|
|
func parseURLOptions(opts []string) (urlOptions, []string) {
|
|
parsed := make(urlOptions, 0, len(opts))
|
|
urlStart := len(opts) + 1
|
|
|
|
for i, opt := range opts {
|
|
args := strings.Split(opt, config.ArgumentsSeparator)
|
|
|
|
if len(args) == 1 {
|
|
urlStart = i
|
|
break
|
|
}
|
|
|
|
parsed = append(parsed, urlOption{Name: args[0], Args: args[1:]})
|
|
}
|
|
|
|
var rest []string
|
|
|
|
if urlStart < len(opts) {
|
|
rest = opts[urlStart:]
|
|
} else {
|
|
rest = []string{}
|
|
}
|
|
|
|
return parsed, rest
|
|
}
|