1212import yaml
1313import click
1414
15+ import flex
16+ from flex .exceptions import ValidationError
17+
1518from ._version import __version__
1619from .flask import FlaskGenerator
1720from .tornado import TornadoGenerator
@@ -101,6 +104,9 @@ def print_version(ctx, param, value):
101104@click .option ('--ui' ,
102105 default = False , is_flag = True ,
103106 help = 'Generate swagger ui.' )
107+ @click .option ('--validate' ,
108+ default = False , is_flag = True ,
109+ help = 'Validate swagger file.' )
104110@click .option ('-tlp' , '--templates' ,
105111 default = 'flask' ,
106112 help = 'gen flask/tornado/falcon/sanic templates, default flask.' )
@@ -109,9 +115,15 @@ def print_version(ctx, param, value):
109115 help = 'Show current version.' )
110116def generate (destination , swagger_doc , force = False , package = None ,
111117 template_dir = None , templates = 'flask' ,
112- specification = False , ui = False ):
118+ specification = False , ui = False , validate = False ):
113119 package = package or destination .replace ('-' , '_' )
114120 data = spec_load (swagger_doc )
121+ if validate :
122+ try :
123+ flex .core .parse (data )
124+ click .echo ("Validation passed" )
125+ except ValidationError as e :
126+ raise click .ClickException (str (e ))
115127 swagger = Swagger (data )
116128 if templates == 'tornado' :
117129 generator = TornadoGenerator (swagger )
0 commit comments