package cmdVersion import ( u "nexus-client/utils" "nexus-client/version" libclient "nexus-libclient/version" ) type Version struct { Name string } func (cmd *Version) GetName() string { return cmd.Name } func (cmd *Version) GetDesc() []string { return []string{ "Display nexus server and client's versions."} } func (cmd *Version) PrintUsage() { for _, desc := range cmd.GetDesc() { u.PrintlnErr(desc) } u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――") u.PrintlnErr("USAGE: " + cmd.GetName()) u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――") } func (cmd *Version) Run(args []string) int { if len(args) > 0 { cmd.PrintUsage() return 1 } serverVersion, err := libclient.GetServerVersion() if err != nil { u.PrintlnErr("Error: " + err.Error()) return 1 } clientVersion := version.Get() u.Println("client version: " + clientVersion.String()) u.Println("server version: " + serverVersion.String()) return 0 } // Checks the client version is compatible with the server's API. func CheckServerCompatibility(appname string) bool { // Checks the client version is compatible with the server's API. serverVersion, err := libclient.GetServerVersion() if err != nil { u.PrintlnErr("Error: " + err.Error()) return false } clientVersion := version.Get() if !clientVersion.IsCompatible(serverVersion) { u.PrintlnErr(appname + " version " + clientVersion.String() + " is not compatible with server version " + serverVersion.String() + ".") if clientVersion.IsOlder(serverVersion) { u.PrintlnErr("Please upgrade " + appname + " to version " + serverVersion.StringWithoutBugfix() + ".") } else { u.PrintlnErr("Please downgrade " + appname + " to version " + serverVersion.StringWithoutBugfix() + ".") } return false } return true }