@@ -7,23 +7,27 @@ import (
7
7
"io"
8
8
"io/ioutil"
9
9
"net/http"
10
- "net/http/httputil"
11
10
"os"
12
11
"regexp"
13
12
"strconv"
14
13
"strings"
15
14
"time"
16
15
)
17
16
17
+ const AppVersion = "1.0.0"
18
+
19
+ var compileInfo string
20
+
18
21
var (
22
+ version = flag .Bool ("version" , false , "Prints program version" )
19
23
networkAddress = flag .String ("address" , "localhost" , "The address of the board" )
20
24
networkPort = flag .String ("port" , "80" , "The board needs to be listening on this port" )
21
25
sketchPath = flag .String ("sketch" , "" , "Sketch path" )
22
26
uploadEndpoint = flag .String ("upload" , "" , "Upload endpoint" )
23
27
resetEndpoint = flag .String ("reset" , "" , "Upload endpoint" )
24
28
syncEndpoint = flag .String ("sync" , "" , "Upload endpoint" )
25
- verbose = flag .String ("v" , " true" , "Verbose flag" )
26
- quiet = flag .String ("q" , "" , "Quiet flag" )
29
+ verbose = flag .Bool ("v" , true , "Verbose flag" )
30
+ quiet = flag .Bool ("q" , false , "Quiet flag" )
27
31
useSsl = flag .String ("ssl" , "" , "SSL flag" )
28
32
syncRet = flag .String ("sync_exp" , "" , "sync expected return code in format code:string" )
29
33
)
@@ -36,6 +40,11 @@ type Item struct {
36
40
func main () {
37
41
flag .Parse ()
38
42
43
+ if * version {
44
+ fmt .Println (AppVersion + compileInfo )
45
+ os .Exit (0 )
46
+ }
47
+
39
48
httpheader := "http://"
40
49
41
50
if * useSsl != "" {
@@ -54,15 +63,13 @@ func main() {
54
63
}
55
64
56
65
if * syncEndpoint != "" {
57
- if * verbose != "" {
66
+ if * verbose {
58
67
fmt .Println ("Resetting the board" )
59
68
}
60
69
61
70
resp , err := http .Post (httpheader + * networkAddress + ":" + * networkPort + * syncEndpoint , "" , nil )
62
- fmt .Println (resp .StatusCode )
63
- fmt .Println (resp .Status )
64
71
if err != nil || resp .StatusCode != syncRetCode {
65
- if * verbose != "" {
72
+ if * verbose {
66
73
fmt .Println ("Failed to reset the board, upload failed" )
67
74
}
68
75
os .Exit (1 )
@@ -71,7 +78,7 @@ func main() {
71
78
}
72
79
73
80
if * syncEndpoint != "" {
74
- if * verbose != "" {
81
+ if * verbose {
75
82
fmt .Println ("Waiting for the upload to start" )
76
83
}
77
84
@@ -80,7 +87,7 @@ func main() {
80
87
for timeout < 10 {
81
88
resp , err := http .Get (httpheader + * networkAddress + ":" + * networkPort + * syncEndpoint )
82
89
if err != nil {
83
- if * verbose != "" {
90
+ if * verbose {
84
91
fmt .Println ("Failed to reset the board, upload failed" )
85
92
}
86
93
os .Exit (1 )
@@ -100,13 +107,13 @@ func main() {
100
107
}
101
108
102
109
if * uploadEndpoint != "" {
103
- if * verbose != "" {
110
+ if * verbose {
104
111
fmt .Println ("Uploading the sketch" )
105
112
}
106
113
107
114
f , err := os .Open (* sketchPath )
108
115
if err != nil {
109
- if * verbose != "" {
116
+ if * verbose {
110
117
fmt .Println ("Failed to open the sketch" )
111
118
}
112
119
os .Exit (1 )
@@ -119,19 +126,16 @@ func main() {
119
126
120
127
req , err := http .NewRequest ("POST" , httpheader + * networkAddress + ":" + * networkPort + * uploadEndpoint , bytes .NewBufferString (str ))
121
128
if err != nil {
122
- if * verbose != "" {
129
+ if * verbose {
123
130
fmt .Println ("Error sending sketch file" )
124
131
}
125
132
os .Exit (1 )
126
133
}
127
134
req .Header .Set ("Content-Type" , "application/x-www-form-urlencoded" )
128
135
129
- aaa , _ := httputil .DumpRequestOut (req , true )
130
- fmt .Println (string (aaa ))
131
-
132
136
resp , err := http .DefaultClient .Do (req )
133
137
if err != nil {
134
- if * verbose != "" {
138
+ if * verbose {
135
139
fmt .Println ("Error flashing the sketch" )
136
140
}
137
141
os .Exit (1 )
@@ -141,26 +145,26 @@ func main() {
141
145
respStr , _ := ioutil .ReadAll (resp .Body )
142
146
143
147
if resp .StatusCode != 200 {
144
- if * verbose != "" {
148
+ if * verbose {
145
149
fmt .Println ("Error flashing the sketch:" + string (respStr ))
146
150
}
147
151
os .Exit (1 )
148
152
}
149
153
150
- if * verbose != "" {
154
+ if * verbose {
151
155
fmt .Println (string (respStr ))
152
156
fmt .Println ("Sketch uploaded successfully" )
153
157
}
154
158
}
155
159
156
160
if * resetEndpoint != "" {
157
- if * verbose != "" {
161
+ if * verbose {
158
162
fmt .Println ("Resetting the board" )
159
163
}
160
164
161
165
resp , err := http .Post (httpheader + * networkAddress + ":" + * networkPort + * resetEndpoint , "" , nil )
162
166
if err != nil {
163
- if * verbose != "" {
167
+ if * verbose {
164
168
fmt .Println ("Failed to reset the board, please reset maually" )
165
169
}
166
170
os .Exit (0 )
0 commit comments