1
1
import json
2
2
import os
3
3
import sys
4
+ import warnings
4
5
from contextlib import contextmanager
5
6
6
7
from . import arguments
77
78
"""
78
79
79
80
81
+ def showwarning (message , category , filename , lineno , file = None , line = None ):
82
+ sys .stderr .write ('warning: {}\n ' .format (message ))
83
+
84
+
80
85
def add_git_arguments (parser , * , commit = True , deploy_prefix = True ):
81
86
# Add this whenever we add git arguments since we pull the remote and
82
87
# branch from mkdocs.yml.
@@ -174,16 +179,16 @@ def check_remote_status(args, strict=False):
174
179
raise ValueError (str (e ) + "\n If you're sure this is intended, " +
175
180
'retry with --ignore-remote-status' )
176
181
else :
177
- sys . stderr . write ( 'warning: {} \n ' . format (e ))
182
+ warnings . warn ( str (e ))
178
183
179
184
180
185
@contextmanager
181
186
def handle_empty_commit ():
182
187
try :
183
188
yield
184
189
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' )
187
192
188
193
189
194
def deploy (parser , args ):
@@ -198,7 +203,7 @@ def deploy(parser, args):
198
203
deploy_prefix = args .deploy_prefix ,
199
204
set_props = args .set_props or []), \
200
205
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 )
202
207
if args .push :
203
208
git_utils .push_branch (args .remote , args .branch )
204
209
@@ -327,12 +332,16 @@ def generate_completion(parser, args):
327
332
328
333
329
334
def main ():
335
+ warnings .showwarning = showwarning
336
+
330
337
parser = arguments .ArgumentParser (prog = 'mike' , description = description )
331
338
subparsers = parser .add_subparsers (metavar = 'COMMAND' )
332
339
subparsers .required = True
333
340
334
341
parser .add_argument ('--version' , action = 'version' ,
335
342
version = '%(prog)s ' + app_version )
343
+ parser .add_argument ('-q' , '--quiet' , action = 'store_true' ,
344
+ help = 'silence warnings' )
336
345
parser .add_argument ('--debug' , action = 'store_true' ,
337
346
help = 'report extra information for debugging mike' )
338
347
@@ -460,6 +469,9 @@ def main():
460
469
help = 'shell type (default: %(default)s)' )
461
470
462
471
args = parser .parse_args ()
472
+ if args .quiet :
473
+ warnings .filterwarnings ('ignore' )
474
+
463
475
try :
464
476
return args .func (parser , args )
465
477
except Exception as e :
0 commit comments