in scctl/pkg/plugin/get/schema/schema_cmd.go [85:132]
func CommandFunc(_ *cobra.Command, args []string) {
scClient, err := client.NewSCClient(cmd.ScClientConfig)
if err != nil {
cmd.StopAndExit(cmd.ExitError, err)
}
cache, scErr := scClient.GetScCache(context.Background())
if scErr != nil {
cmd.StopAndExit(cmd.ExitError, scErr)
}
var progressBarWriter io.Writer = os.Stdout
if len(SaveDir) == 0 {
progressBarWriter = io.Discard
}
progressBar := pb.NewProgressBar(len(cache.Microservices), progressBarWriter)
defer progressBar.FinishPrint("Finished.")
for _, ms := range cache.Microservices {
progressBar.Increment()
domainProject := model.GetDomainProject(ms)
if !get.AllDomains && strings.Index(domainProject+path.SPLIT, get.Domain+path.SPLIT) != 0 {
continue
}
if len(AppID) > 0 && ms.Value.AppId != AppID {
continue
}
if len(ServiceName) > 0 && ms.Value.ServiceName != ServiceName {
continue
}
if len(Version) > 0 && ms.Value.Version != Version {
continue
}
dp := strings.Split(domainProject, "/")
schemas, err := scClient.GetSchemasByServiceID(context.Background(), dp[0], dp[1], ms.Value.ServiceId)
if err != nil {
cmd.StopAndExit(cmd.ExitError, err)
}
if len(schemas) == 0 {
continue
}
writer := NewSchemaWriter(Config{SaveDir: saveDirectory(SaveDir, ms)})
if err := writer.Write(schemas); err != nil {
fmt.Fprintln(os.Stderr, "output schema data failed", err.Error())
}
}
}