Merge pull request #502 from darko-poljak/deprecate-d

Deprecate -d option and make -v option log level counter
This commit is contained in:
Nico Schottelius 2016-12-01 11:55:41 +01:00 committed by GitHub
commit 1e3cae7d85
2 changed files with 27 additions and 10 deletions

View file

@ -46,11 +46,13 @@ All commands accept the following options:
.. option:: -d, --debug .. option:: -d, --debug
Set log level to debug Set log level to debug (deprecated, use -vvv instead)
.. option:: -v, --verbose .. option:: -v, --verbose
Set log level to info, be more verbose Increase log level, be more verbose. Use it more than once to increase
log level. The order of levels from the lowest to the highest are:
ERROR, WARNING, INFO, DEBUG.
.. option:: -V, --version .. option:: -V, --version

View file

@ -21,6 +21,8 @@
# #
# #
import collections
import logging
# list of beta sub-commands # list of beta sub-commands
BETA_COMMANDS = ['install', ] BETA_COMMANDS = ['install', ]
@ -61,6 +63,15 @@ def check_beta(args_dict):
raise cdist.CdistBetaRequired(cmd, arg) raise cdist.CdistBetaRequired(cmd, arg)
_verbosity_level = {
0: logging.ERROR,
1: logging.WARNING,
2: logging.INFO,
}
_verbosity_level = collections.defaultdict(
lambda: logging.DEBUG, _verbosity_level)
def commandline(): def commandline():
"""Parse command line""" """Parse command line"""
import argparse import argparse
@ -78,11 +89,15 @@ def commandline():
# Options _all_ parsers have in common # Options _all_ parsers have in common
parser['loglevel'] = argparse.ArgumentParser(add_help=False) parser['loglevel'] = argparse.ArgumentParser(add_help=False)
parser['loglevel'].add_argument( parser['loglevel'].add_argument(
'-d', '--debug', help='Set log level to debug', '-d', '--debug',
help=('Set log level to debug (deprecated, use -vvv instead)'),
action='store_true', default=False) action='store_true', default=False)
parser['loglevel'].add_argument( parser['loglevel'].add_argument(
'-v', '--verbose', help='Set log level to info, be more verbose', '-v', '--verbose',
action='store_true', default=False) help=('Increase log level, be more verbose. Use it more than once '
'to increase log level. The order of levels from the lowest '
'to the highest are: ERROR, WARNING, INFO, DEBUG.'),
action='count', default=0)
# Main subcommand parser # Main subcommand parser
parser['main'] = argparse.ArgumentParser( parser['main'] = argparse.ArgumentParser(
@ -179,11 +194,12 @@ def commandline():
args = parser['main'].parse_args(sys.argv[1:]) args = parser['main'].parse_args(sys.argv[1:])
# Loglevels are handled globally in here and debug wins over verbose # Loglevels are handled globally in here
if args.verbose:
logging.root.setLevel(logging.INFO)
if args.debug: if args.debug:
logging.root.setLevel(logging.DEBUG) log.warning("-d/--debug is deprecated, use -vvv instead")
args.verbose = 3
logging.root.setLevel(_verbosity_level[args.verbose])
log.debug(args) log.debug(args)
log.info("version %s" % cdist.VERSION) log.info("version %s" % cdist.VERSION)
@ -219,7 +235,6 @@ if __name__ == "__main__":
exit_code = 0 exit_code = 0
try: try:
import logging
import os import os
import re import re
import cdist import cdist