11import json
22import os
33import sys
4+ import warnings
45from contextlib import contextmanager
56
67from . import arguments
7778"""
7879
7980
81+ def showwarning (message , category , filename , lineno , file = None , line = None ):
82+ sys .stderr .write ('warning: {}\n ' .format (message ))
83+
84+
8085def add_git_arguments (parser , * , commit = True , deploy_prefix = True ):
8186 # Add this whenever we add git arguments since we pull the remote and
8287 # branch from mkdocs.yml.
@@ -174,16 +179,16 @@ def check_remote_status(args, strict=False):
174179 raise ValueError (str (e ) + "\n If you're sure this is intended, " +
175180 'retry with --ignore-remote-status' )
176181 else :
177- sys . stderr . write ( 'warning: {} \n ' . format (e ))
182+ warnings . warn ( str (e ))
178183
179184
180185@contextmanager
181186def handle_empty_commit ():
182187 try :
183188 yield
184189 except git_utils .GitEmptyCommit as e :
185- sys . stderr . write (( 'warning: {} \n To create a commit anyway, retry ' +
186- 'with --allow-empty\n ' ). format ( e ) )
190+ warnings . warn ( str ( e ) + ' \n To create a commit anyway, retry with ' +
191+ ' --allow-empty' )
187192
188193
189194def deploy (parser , args ):
@@ -198,7 +203,7 @@ def deploy(parser, args):
198203 deploy_prefix = args .deploy_prefix ,
199204 set_props = args .set_props or []), \
200205 mkdocs_utils .inject_plugin (args .config_file ) as config_file :
201- mkdocs_utils .build (config_file , args .version )
206+ mkdocs_utils .build (config_file , args .version , quiet = args . quiet )
202207 if args .push :
203208 git_utils .push_branch (args .remote , args .branch )
204209
@@ -327,12 +332,16 @@ def generate_completion(parser, args):
327332
328333
329334def main ():
335+ warnings .showwarning = showwarning
336+
330337 parser = arguments .ArgumentParser (prog = 'mike' , description = description )
331338 subparsers = parser .add_subparsers (metavar = 'COMMAND' )
332339 subparsers .required = True
333340
334341 parser .add_argument ('--version' , action = 'version' ,
335342 version = '%(prog)s ' + app_version )
343+ parser .add_argument ('-q' , '--quiet' , action = 'store_true' ,
344+ help = 'silence warnings' )
336345 parser .add_argument ('--debug' , action = 'store_true' ,
337346 help = 'report extra information for debugging mike' )
338347
@@ -460,6 +469,9 @@ def main():
460469 help = 'shell type (default: %(default)s)' )
461470
462471 args = parser .parse_args ()
472+ if args .quiet :
473+ warnings .filterwarnings ('ignore' )
474+
463475 try :
464476 return args .func (parser , args )
465477 except Exception as e :
0 commit comments