|
|
@ -51,17 +51,16 @@ func main() {
|
|
51
|
51
|
}
|
|
52
|
52
|
}
|
|
53
|
53
|
|
|
|
54
|
var responsesPath string
|
|
54
|
55
|
if flag.NArg() == 1 {
|
|
55
|
|
rs, err := loadResponses(flag.Arg(0))
|
|
56
|
|
if err != nil {
|
|
57
|
|
log.Fatalf("Error: Parsing %s: %s", flag.Arg(0), err)
|
|
58
|
|
}
|
|
59
|
|
responses = rs
|
|
|
56
|
responsesPath = flag.Arg(0)
|
|
60
|
57
|
}
|
|
61
|
58
|
|
|
62
|
59
|
requestLog := make([]LogEntry, 0)
|
|
63
|
60
|
|
|
64
|
61
|
http.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) {
|
|
|
62
|
responses = loadResponses(flag.Arg(0), false, responses)
|
|
|
63
|
|
|
65
|
64
|
var resp *http.Response
|
|
66
|
65
|
if flags.proxyURL != "" {
|
|
67
|
66
|
resp = respondWithProxy(flags.proxyURL, w, req)
|
|
|
@ -137,6 +136,8 @@ func main() {
|
|
137
|
136
|
})
|
|
138
|
137
|
|
|
139
|
138
|
http.HandleFunc("/_stubs", func(w http.ResponseWriter, req *http.Request) {
|
|
|
139
|
responses = loadResponses(responsesPath, false, responses)
|
|
|
140
|
|
|
140
|
141
|
var err error
|
|
141
|
142
|
if strings.Contains(req.Header.Get("Accept"), "application/yaml") {
|
|
142
|
143
|
err = renderYAML(w, responses)
|
|
|
@ -384,7 +385,18 @@ func readResponse(form url.Values) Response {
|
|
384
|
385
|
return r
|
|
385
|
386
|
}
|
|
386
|
387
|
|
|
387
|
|
func loadResponses(path string) ([]Response, error) {
|
|
|
388
|
func loadResponses(path string, abort bool, prevResponses []Response) []Response {
|
|
|
389
|
rs, err := loadResponsesRaw(path)
|
|
|
390
|
if err != nil {
|
|
|
391
|
if abort {
|
|
|
392
|
log.Fatalf("Error: Parsing %s: %s", flag.Arg(0), err)
|
|
|
393
|
}
|
|
|
394
|
return prevResponses
|
|
|
395
|
}
|
|
|
396
|
return rs
|
|
|
397
|
}
|
|
|
398
|
|
|
|
399
|
func loadResponsesRaw(path string) ([]Response, error) {
|
|
388
|
400
|
out, err := ioutil.ReadFile(path)
|
|
389
|
401
|
if err != nil {
|
|
390
|
402
|
return nil, err
|