code: func (c *MixinSpec) Execute(args []string) error {
  
  	if len(args) < 2 {
  		return errors.New(nothingToDo)
  	}
  
  	log.Printf("args[0] = %v\n", args[0])
  	log.Printf("args[1:] = %v\n", args[1:])
  	collisions, err := c.MixinFiles(args[0], args[1:], os.Stdout)
  
  	for _, warn := range collisions {
  		log.Println(warn)
  	}
  
  	if err != nil {
  		return err
  	}
  
  	if len(collisions) != int(c.ExpectedCollisionCount) {
  		if len(collisions) != 0 {
  			// use bash $? to get actual # collisions
  			// (but has to be non-zero)
  			os.Exit(len(collisions))
  		}
  		os.Exit(254)
  	}
  	return nil
  }
docs: // Execute runs the mixin command which merges Swagger 2.0 specs into
  // one spec
  //
  // Use cases include adding independently versioned metadata APIs to
  // application APIs for microservices.
  //
  // Typically, multiple APIs to the same service instance is not a
  // problem for client generation as you can create more than one
  // client to the service from the same calling process (one for each
  // API).  However, merging clients can improve clarity of client code
  // by having a single client to given service vs several.
  //
  // Server skeleton generation, ie generating the model & marshaling
  // code, http server instance etc. from Swagger, becomes easier with a
  // merged spec for some tools & target-languages.  Server code
  // generation tools that natively support hosting multiple specs in
  // one server process will not need this tool.