diff options
| author | mo khan <mo@mokhan.ca> | 2025-07-22 17:35:49 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-07-22 17:35:49 -0600 |
| commit | 20ef0d92694465ac86b550df139e8366a0a2b4fa (patch) | |
| tree | 3f14589e1ce6eb9306a3af31c3a1f9e1af5ed637 /vendor/github.com/authzed/zed/internal/cmd/version.go | |
| parent | 44e0d272c040cdc53a98b9f1dc58ae7da67752e6 (diff) | |
feat: connect to spicedb
Diffstat (limited to 'vendor/github.com/authzed/zed/internal/cmd/version.go')
| -rw-r--r-- | vendor/github.com/authzed/zed/internal/cmd/version.go | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/vendor/github.com/authzed/zed/internal/cmd/version.go b/vendor/github.com/authzed/zed/internal/cmd/version.go new file mode 100644 index 0000000..b87ec66 --- /dev/null +++ b/vendor/github.com/authzed/zed/internal/cmd/version.go @@ -0,0 +1,64 @@ +package cmd + +import ( + "fmt" + "os" + + "github.com/gookit/color" + "github.com/jzelinskie/cobrautil/v2" + "github.com/mattn/go-isatty" + "github.com/spf13/cobra" + "google.golang.org/grpc" + "google.golang.org/grpc/metadata" + + "github.com/authzed/authzed-go/pkg/responsemeta" + v1 "github.com/authzed/authzed-go/proto/authzed/api/v1" + + "github.com/authzed/zed/internal/client" + "github.com/authzed/zed/internal/console" +) + +func versionCmdFunc(cmd *cobra.Command, _ []string) error { + if !isatty.IsTerminal(os.Stdout.Fd()) { + color.Disable() + } + + includeRemoteVersion := cobrautil.MustGetBool(cmd, "include-remote-version") + hasContext := false + if includeRemoteVersion { + configStore, secretStore := client.DefaultStorage() + _, err := client.GetCurrentTokenWithCLIOverride(cmd, configStore, secretStore) + hasContext = err == nil + } + + if hasContext && includeRemoteVersion { + green := color.FgGreen.Render + fmt.Print(green("client: ")) + } + + console.Println(cobrautil.UsageVersion("zed", cobrautil.MustGetBool(cmd, "include-deps"))) + + if hasContext && includeRemoteVersion { + client, err := client.NewClient(cmd) + if err != nil { + return err + } + + // NOTE: we ignore the error here, as it may be due to a schema not existing, or + // the client being unable to connect, etc. We just treat all such cases as an unknown + // version. + var headerMD metadata.MD + _, _ = client.ReadSchema(cmd.Context(), &v1.ReadSchemaRequest{}, grpc.Header(&headerMD)) + version := headerMD.Get(string(responsemeta.ServerVersion)) + + blue := color.FgLightBlue.Render + fmt.Print(blue("service: ")) + if len(version) == 1 { + console.Println(version[0]) + } else { + console.Println("(unknown)") + } + } + + return nil +} |
