no message

This commit is contained in:
Roee Gadot
2021-07-15 15:14:40 +03:00
parent 193fc2becc
commit e8848fd305
5 changed files with 58 additions and 5 deletions

View File

@@ -2,6 +2,7 @@ package cmd
import (
"github.com/spf13/cobra"
"github.com/up9inc/mizu/cli/mizu"
)
type MizuFetchOptions struct {
@@ -17,6 +18,9 @@ var fetchCmd = &cobra.Command{
Use: "fetch",
Short: "Download recorded traffic to files",
RunE: func(cmd *cobra.Command, args []string) error {
if !mizu.CheckVersionCompatibility(mizuFetchOptions.MizuPort) {
return nil
}
RunMizuFetch(&mizuFetchOptions)
return nil
},

View File

@@ -2,6 +2,7 @@ package cmd
import (
"github.com/spf13/cobra"
"github.com/up9inc/mizu/cli/mizu"
)
type MizuViewOptions struct {
@@ -14,9 +15,14 @@ var viewCmd = &cobra.Command{
Use: "view",
Short: "Open GUI in browser",
RunE: func(cmd *cobra.Command, args []string) error {
if !mizu.CheckVersionCompatibility(mizuFetchOptions.MizuPort) {
return nil
}
runMizuView(mizuViewOptions)
return nil
},
}
func init() {

40
cli/mizu/versionCheck.go Normal file
View File

@@ -0,0 +1,40 @@
package mizu
import (
"encoding/json"
"fmt"
"github.com/up9inc/mizu/shared"
"net/http"
"net/url"
)
func getApiVersion(port uint16) (string, error) {
versionUrl, _ := url.Parse(fmt.Sprintf("http://localhost:%d/mizu/metadata/version", port))
req := &http.Request{
Method: http.MethodGet,
URL: versionUrl,
}
statusResp, err := http.DefaultClient.Do(req)
if err != nil {
return "", err
}
defer statusResp.Body.Close()
versionResponse := &shared.VersionResponse{}
_ = json.NewDecoder(statusResp.Body).Decode(&versionResponse)
return versionResponse.SemVer, nil
}
func CheckVersionCompatibility(port uint16) bool {
apiSemVer, err := getApiVersion(port)
if err != nil {
return true
}
if apiSemVer == SemVer {
return true
}
fmt.Printf(Red, fmt.Sprintf("cli version (%s) is not compatible with api version (%s)\n", SemVer, apiSemVer))
return false
}