in commands/generate.go [223:260]
func (c GenerateCommand) fromSwaggerPath() int {
swaggerPath, err := filepath.Abs(c.swaggerPath)
if err == nil {
c.swaggerPath = swaggerPath
}
logrus.Infof("loading swagger spec: %s...", c.swaggerPath)
file, err := os.Stat(c.swaggerPath)
if err != nil {
logrus.Fatalf("loading swagger spec: %+v", err)
}
apiPathsAll := make([]swagger.ApiPath, 0)
if file.IsDir() {
logrus.Infof("swagger spec is a directory")
logrus.Infof("loading swagger spec directory: %s...", c.swaggerPath)
filenames, err := utils.ListFiles(c.swaggerPath, ".json", 1)
if err != nil {
logrus.Fatalf("reading swagger spec directory: %+v", err)
}
for _, filename := range filenames {
logrus.Infof("parsing swagger spec: %s...", filename)
apiPaths, err := swagger.Load(filename)
if err != nil {
logrus.Fatalf("parsing swagger spec: %+v", err)
}
apiPathsAll = append(apiPathsAll, apiPaths...)
}
} else {
logrus.Infof("parsing swagger spec: %s...", c.swaggerPath)
apiPaths, err := swagger.Load(c.swaggerPath)
if err != nil {
logrus.Fatalf("parsing swagger spec: %+v", err)
}
apiPathsAll = append(apiPathsAll, apiPaths...)
}
logrus.Infof("found %d api paths", len(apiPathsAll))
return c.generate(apiPathsAll)
}