# -*- coding: utf-8 -*-
-# Copyright (c) 2009, 2010, 2011, 2012, 2013 Jack Kaliko <kaliko@azylum.org>
+# Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2015 Jack Kaliko <kaliko@azylum.org>
#
# This file is part of sima
#
#
#
-import sys
from argparse import (ArgumentParser, SUPPRESS)
-from .utils import Obsolete, Wfile, Rfile, Wdir
+from .utils import Wfile, Rfile, Wdir
-USAGE = """USAGE: %prog [--help] [options]"""
DESCRIPTION = """
-sima automagicaly queue new tracks in MPD playlist.
-All command line options will override their equivalent in configuration
-file.
-"""
+MPD_sima automagicaly queue new tracks in MPD playlist.
+Command line options override their equivalent in configuration file."""
def clean_dict(to_clean):
'type': str,
'dest': 'verbosity',
'choices': ['debug', 'info', 'warning', 'error'],
- 'help': 'file to log message to, default is stdout/stderr'},
+ 'help': 'Log messages verbosity, default is info'},
{
'sw': ['-p', '--pid'],
'dest': 'pidfile',
'action': Rfile,
'help': 'Configuration file to load'},
{
- 'sw':['--var_dir'],
+ 'sw':['--generate-config'],
+ 'dest': 'generate_config',
+ 'action': 'store_true',
+ 'help': 'Generate a sample configuration file to stdout according to the current\
+ configuration. You can put other options with this one to get them in\
+ the generated configuration.'},
+ {
+ 'sw':['--var-dir', '--var_dir'],
'dest': 'var_dir',
'action': Wdir,
- 'help': 'Directory to store var content (ie. database)'},
+ 'help': 'Directory to store var content (ie. database, cache)'},
{
'sw': ['--create-db'],
'action': 'store_true',
'dest': 'create_db',
'help': '''Create database and exit, use destination
- specified in --var_dir or standard location.'''},
+ specified in --var-dir or standard location.'''},
{
'sw':['--queue-mode', '-q'],
'dest': 'queue_mode',
#'help': 'Queue mode in [track, top, album]',
'help': SUPPRESS, },
{
- 'sw':['--purge_history'],
+ 'sw':['--purge-history'],
'action': 'store_true',
'dest': 'do_purge_history',
'help': SUPPRESS},
]
-class StartOpt(object):
+class StartOpt:
"""Command line management.
"""
def __init__(self, script_info,):
+ self.parser = None
self.info = dict(script_info)
self.options = dict()
self.main()
Declare options in ArgumentParser object.
"""
self.parser = ArgumentParser(description=DESCRIPTION,
- usage='%(prog)s [options]',
- prog='mpd_sima',
- epilog='Happy Listening',
- )
+ prog=self.info.get('prog'),
+ epilog='Happy Listening',
+ )
self.parser.add_argument('--version', action='version',
- version='%(prog)s {version}'.format(**self.info))
+ version='%(prog)s {version}'.format(**self.info))
# Add all options declare in OPTS
for opt in OPTS:
opt_names = opt.pop('sw')