| package main |
| |
| import ( |
| gocontext "context" |
| "fmt" |
| "os" |
| |
| "github.com/containerd/containerd/version" |
| empty "github.com/golang/protobuf/ptypes/empty" |
| "github.com/urfave/cli" |
| ) |
| |
| var versionCommand = cli.Command{ |
| Name: "version", |
| Usage: "print the version", |
| Action: func(context *cli.Context) error { |
| if context.NArg() > 0 { |
| return fmt.Errorf("no argument expected") |
| } |
| fmt.Println("Client:") |
| fmt.Printf(" Version: %s\n", version.Version) |
| fmt.Printf(" Revision: %s\n", version.Revision) |
| fmt.Println("") |
| vs, err := getVersionService(context) |
| if err != nil { |
| return err |
| } |
| v, err := vs.Version(gocontext.Background(), &empty.Empty{}) |
| if err != nil { |
| return err |
| } |
| fmt.Println("Server:") |
| fmt.Printf(" Version: %s\n", v.Version) |
| fmt.Printf(" Revision: %s\n", v.Revision) |
| if v.Version != version.Version { |
| fmt.Fprintf(os.Stderr, "WARNING: version mismatch\n") |
| } |
| if v.Revision != version.Revision { |
| fmt.Fprintf(os.Stderr, "WARNING: revision mismatch\n") |
| } |
| return nil |
| }, |
| } |