github.com/circl-dev/go-swagger@v0.31.0/cmd/swagger/commands/generate/support.go (about)

     1  // Copyright 2015 go-swagger maintainers
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //    http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  package generate
    16  
    17  import (
    18  	"log"
    19  
    20  	"github.com/circl-dev/go-swagger/generator"
    21  )
    22  
    23  // Support generates the supporting files
    24  type Support struct {
    25  	WithShared
    26  	WithModels
    27  	WithOperations
    28  
    29  	clientOptions
    30  	serverOptions
    31  	schemeOptions
    32  	mediaOptions
    33  
    34  	Name string `long:"name" short:"A" description:"the name of the application, defaults to a mangled value of info.title"`
    35  }
    36  
    37  func (s *Support) apply(opts *generator.GenOpts) {
    38  	s.Shared.apply(opts)
    39  	s.Models.apply(opts)
    40  	s.Operations.apply(opts)
    41  	s.clientOptions.apply(opts)
    42  	s.serverOptions.apply(opts)
    43  	s.schemeOptions.apply(opts)
    44  	s.mediaOptions.apply(opts)
    45  }
    46  
    47  func (s *Support) generate(opts *generator.GenOpts) error {
    48  	return generator.GenerateSupport(s.Name, s.Models.Models, s.Operations.Operations, opts)
    49  }
    50  
    51  func (s Support) log(rp string) {
    52  
    53  	log.Printf(`Generation completed!
    54  
    55  For this generation to compile you need to have some packages in your vendor or GOPATH:
    56  
    57    * github.com/circl-dev/runtime
    58    * github.com/asaskevich/govalidator
    59    * github.com/jessevdk/go-flags
    60    * golang.org/x/net/context/ctxhttp
    61  
    62  You can get these now with: go get -u -f %s/...
    63  `, rp)
    64  }
    65  
    66  // Execute generates the supporting files file
    67  func (s *Support) Execute(args []string) error {
    68  	return createSwagger(s)
    69  }