func()

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)
}