scanner: Add -q and -v options for controlling log output

This commit is contained in:
Stein Magnus Jodal 2012-12-11 11:00:28 +01:00
parent beac2e80ed
commit cdda3bc5dd
2 changed files with 53 additions and 4 deletions

View File

@ -25,6 +25,10 @@ v0.10.0 (in development)
- Make ``mopidy-scan`` ignore invalid dates, e.g. dates in years outside the
range 1-9999.
- Make ``mopidy-scan`` accept :opt:`-q`/:opt:`--quiet` and
:opt:`-v`/:opt:`--verbose` options to control the amount of logging output
when scanning.
**HTTP frontend**
- Added new optional HTTP frontend which exposes Mopidy's core API through

View File

@ -1,11 +1,35 @@
from __future__ import unicode_literals
import logging
import datetime
import logging
import optparse
import os
import sys
import gobject
gobject.threads_init()
# Extract any non-GStreamer arguments, and leave the GStreamer arguments for
# processing by GStreamer. This needs to be done before GStreamer is imported,
# so that GStreamer doesn't hijack e.g. ``--help``.
# NOTE This naive fix does not support values like ``bar`` in
# ``--gst-foo bar``. Use equals to pass values, like ``--gst-foo=bar``.
def is_gst_arg(argument):
return argument.startswith('--gst') or argument == '--help-gst'
gstreamer_args = [arg for arg in sys.argv[1:] if is_gst_arg(arg)]
mopidy_args = [arg for arg in sys.argv[1:] if not is_gst_arg(arg)]
sys.argv[1:] = gstreamer_args
# Add ../ to the path so we can run Mopidy from a Git checkout without
# installing it on the system.
sys.path.insert(
0, os.path.abspath(os.path.join(os.path.dirname(__file__), '../')))
import pygst
pygst.require('0.10')
import gst
@ -13,12 +37,14 @@ import gst
from mopidy import settings
from mopidy.frontends.mpd import translator as mpd_translator
from mopidy.models import Track, Artist, Album
from mopidy.utils import log, path
from mopidy.utils import log, path, versioning
def main():
options = parse_options()
log.setup_root_logger()
log.setup_console_logging(2)
log.setup_console_logging(options.verbosity_level)
tracks = []
@ -28,7 +54,8 @@ def main():
logging.debug('Added %s', track.uri)
def debug(uri, error, debug):
logging.error('Failed %s: %s - %s', uri, error, debug)
logging.warning('Failed %s: %s', uri, error)
logging.debug('Debug info for %s: %s', uri, debug)
logging.info('Scanning %s', settings.LOCAL_MUSIC_PATH)
scanner = Scanner(settings.LOCAL_MUSIC_PATH, store, debug)
@ -46,6 +73,20 @@ def main():
print ('%s: %s' % row).encode('utf-8')
def parse_options():
parser = optparse.OptionParser(
version='Mopidy %s' % versioning.get_version())
parser.add_option(
'-q', '--quiet',
action='store_const', const=0, dest='verbosity_level',
help='less output (warning level)')
parser.add_option(
'-v', '--verbose',
action='count', default=1, dest='verbosity_level',
help='more output (debug level)')
return parser.parse_args(args=mopidy_args)[0]
def translator(data):
albumartist_kwargs = {}
album_kwargs = {}
@ -192,3 +233,7 @@ class Scanner(object):
def stop(self):
self.pipe.set_state(gst.STATE_NULL)
self.loop.quit()
if __name__ == '__main__':
main()