code: func (c *SchemaDump) Execute(args []string) error {
  	if c.Verbose {
  		fmt.Printf("executing schema dump with %v\n", args)
  		fmt.Printf("options are %+v\n", *c)
  		fmt.Printf("global options are %+v\n", options)
  	}
  
  	if c.JarPath != "" {
  		if _, err := os.Stat(javaclient); os.IsNotExist(err) {
  			downloadJar()
  		}
  		c.doSchemaDumpInJavaClient()
  		return nil
  	}
  
  	// no connection necessary
  	client := dosa.NewAdminClient(&devnull.Connector{})
  	if len(c.Args.Paths) != 0 {
  		dirs, err := expandDirectories(c.Args.Paths)
  		if err != nil {
  			return errors.Wrap(err, "could not expand directories")
  		}
  		client.Directories(dirs)
  	}
  	if len(c.Excludes) != 0 {
  		client.Excludes(c.Excludes)
  	}
  
  	// try to parse entities in each directory
  	defs, err := client.GetSchema()
  	if err != nil {
  		return err
  	}
  
  	// for each of those entities, format it in the specified way
  	for _, d := range defs {
  		switch c.Format {
  		case "cql":
  			fmt.Println(cql.ToCQL(d))
  		case "uql":
  			fmt.Println(uql.ToUQL(d))
  		case "avro":
  			s, err := avro.ToAvro("TODO", d)
  			fmt.Println(string(s), err)
  		}
  	}
  
  	return nil
  }
docs: // Execute executes a schema dump command