-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
66 lines (63 loc) · 1.32 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package main
import (
"bufio"
"flag"
"io"
"os"
)
type flags struct {
golang bool
https bool
name string
output string
form bool
}
func main() {
var f flags
flag.BoolVar(&f.form, "f", false, "form")
flag.BoolVar(&f.golang, "g", false, "request as Go code")
flag.StringVar(&f.name, "i", "", "input file")
flag.StringVar(&f.output, "o", "", "output file")
flag.BoolVar(&f.https, "s", false, "HTTPS")
flag.Parse()
if f.name == "" {
flag.Usage()
} else {
var create io.WriteCloser
if f.output != "" {
var err error
create, err = os.Create(f.output)
if err != nil {
panic(err)
}
defer create.Close()
}
open, err := os.Open(f.name)
if err != nil {
panic(err)
}
defer open.Close()
req, err := read_request(bufio.NewReader(open))
if err != nil {
panic(err)
}
if req.URL.Scheme == "" {
if f.https {
req.URL.Scheme = "https"
} else {
req.URL.Scheme = "http"
}
}
if f.golang {
err := f.write(req, create)
if err != nil {
panic(err)
}
} else {
err := write(req, create)
if err != nil {
panic(err)
}
}
}
}