Peter Kurfer
a720b0ee41
* supports HTTP * support TLS interception e.g. for HTTPS * support CA generation via cli * first draft of plugin API * support commands from plugins * includes Dockerfile * includes basic configuration
33 lines
649 B
Go
33 lines
649 B
Go
package main
|
|
|
|
import "github.com/spf13/viper"
|
|
|
|
const (
|
|
rulesConfigKey = "rules"
|
|
patternConfigKey = "pattern"
|
|
targetConfigKey = "target"
|
|
)
|
|
|
|
type targetRule struct {
|
|
pattern string
|
|
target string
|
|
}
|
|
|
|
type httpOptions struct {
|
|
Rules []targetRule
|
|
}
|
|
|
|
func loadFromConfig(config *viper.Viper) httpOptions {
|
|
options := httpOptions{}
|
|
anonRules := config.Get(rulesConfigKey).([]interface{})
|
|
|
|
for _, i := range anonRules {
|
|
innerData := i.(map[interface{}]interface{})
|
|
options.Rules = append(options.Rules, targetRule{
|
|
pattern: innerData[patternConfigKey].(string),
|
|
target: innerData[targetConfigKey].(string),
|
|
})
|
|
}
|
|
|
|
return options
|
|
}
|