@@ -24,55 +24,52 @@ import (
2424 "github.com/fatih/color"
2525 semver "go.bug.st/relaxed-semver"
2626
27- "github.com/arduino/arduino-flasher-cli/feedback"
2827 "github.com/arduino/arduino-flasher-cli/i18n"
2928 "github.com/arduino/arduino-flasher-cli/updater"
3029)
3130
32- type FlasherRelease struct {
33- TagName string `json:"tag_name"`
34- }
35-
36- func checkForUpdates () error {
31+ func checkForUpdates () (string , error ) {
3732 currentVersion , err := semver .Parse (Version )
3833 if err != nil {
39- return err
34+ return "" , err
4035 }
4136
4237 c := updater .NewClient ()
4338 req , err := http .NewRequest ("GET" , "https://api.github.com/repos/arduino/arduino-flasher-cli/releases/latest" , nil )
4439 if err != nil {
45- return err
40+ return "" , err
4641 }
4742 resp , err := c .HTTPClient .Do (req )
4843 if err != nil {
49- return err
44+ return "" , err
5045 }
5146 defer resp .Body .Close ()
5247
53- var release FlasherRelease
48+ var release struct {
49+ TagName string `json:"tag_name"`
50+ }
51+
5452 err = json .NewDecoder (resp .Body ).Decode (& release )
5553 if err != nil {
56- return err
54+ return "" , err
5755 }
5856
5957 release .TagName = strings .TrimPrefix (release .TagName , "v" )
6058 latestVersion , err := semver .Parse (release .TagName )
6159 if err != nil {
62- return err
60+ return "" , err
6361 }
6462
6563 // Do nothing if the Arduino Flasher CLI is up to date
6664 if currentVersion .GreaterThanOrEqual (latestVersion ) {
67- return nil
65+ return "" , nil
6866 }
6967
7068 msg := fmt .Sprintf ("\n \n %s %s → %s\n %s" ,
7169 color .YellowString (i18n .Tr ("A new release of Arduino Flasher CLI is available:" )),
7270 color .CyanString (currentVersion .String ()),
7371 color .CyanString (latestVersion .String ()),
7472 color .YellowString ("https://www.arduino.cc/en/software/#flasher-tool" ))
75- feedback .Print (msg )
7673
77- return nil
74+ return msg , nil
7875}
0 commit comments