argparse is lame!

This commit is contained in:
Ruud
2011-02-13 13:22:36 +01:00
parent 89b783c3d1
commit f1b9376d5f
2 changed files with 25 additions and 40 deletions
+1 -1
View File
@@ -50,6 +50,6 @@ except ImportError, e:
if __name__ == '__main__':
try:
cli.cmd_couchpotato(base_path)
cli.cmd_couchpotato(base_path, sys.argv[1:])
except Exception, e:
log.critical(e)
+24 -39
View File
@@ -1,38 +1,26 @@
from couchpotato import web
from couchpotato.api import api
from couchpotato.core.logger import CPLog
from couchpotato.core.settings import settings
from libs.daemon import createDaemon
from logging import handlers
import argparse
from optparse import OptionParser
import logging
import os.path
import sys
from libs.daemon import createDaemon
from couchpotato import web
from couchpotato.api import api
from couchpotato.core.logger import CPLog
from couchpotato.core.settings import settings
def cmd_couchpotato(base_path, argv=None):
def cmd_couchpotato(base_path, args):
'''Commandline entry point.'''
# Options
parser = argparse.ArgumentParser()
parser.add_argument('-s', '--datadir', dest='data_dir',
default=base_path,
help="Absolute or ~/ path, where "
"settings/logs/database data is saved (default ./)")
parser.add_argument('-t', '--test', '--debug', action='store_true',
dest='debug', help='Debug mode')
parser.add_argument('-q', '--quiet', action='store_true', dest='quiet',
help="Don't log to console")
parser.add_argument('-d', '--daemon', action='store_true',
dest='daemonize', help='Daemonize the app')
args = argv if argv else sys.argv[1:]
options = parser.parse_args(args)
parser = OptionParser('usage: %prog [options]')
parser.add_option('-s', '--datadir', dest = 'data_dir', default = base_path, help = 'Absolute or ~/ path, where settings/logs/database data is saved (default ./)')
parser.add_option('-t', '--test', '--debug', action = 'store_true', dest = 'debug', help = 'Debug mode')
parser.add_option('-q', '--quiet', action = 'store_true', dest = 'quiet', help = "Don't log to console")
parser.add_option('-d', '--daemon', action = 'store_true', dest = 'daemonize', help = 'Daemonize the app')
(options, args) = parser.parse_args(args)
# Create data dir if needed
if not os.path.isdir(options.data_dir):
@@ -47,7 +35,7 @@ def cmd_couchpotato(base_path, argv=None):
# Register settings
settings.setFile(os.path.join(options.data_dir, 'settings.conf'))
debug = options.debug or settings.get('debug', default=False)
debug = options.debug or settings.get('debug', default = False)
# Daemonize app
if options.daemonize:
@@ -55,8 +43,7 @@ def cmd_couchpotato(base_path, argv=None):
# Logger
logger = logging.getLogger()
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s',
'%H:%M:%S')
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s', '%H:%M:%S')
level = logging.DEBUG if debug else logging.INFO
logger.setLevel(level)
@@ -67,9 +54,7 @@ def cmd_couchpotato(base_path, argv=None):
logger.addHandler(hdlr)
# To file
hdlr2 = handlers.RotatingFileHandler(os.path.join(log_dir,
'CouchPotato.log'),
'a', 5000000, 4)
hdlr2 = handlers.RotatingFileHandler(os.path.join(log_dir, 'CouchPotato.log'), 'a', 5000000, 4)
hdlr2.setFormatter(formatter)
logger.addHandler(hdlr2)
@@ -84,7 +69,7 @@ def cmd_couchpotato(base_path, argv=None):
# Load configs
from couchpotato.core.settings.loader import SettingsLoader
sl = SettingsLoader(root=base_path)
sl = SettingsLoader(root = base_path)
sl.addConfig('couchpotato', 'core')
sl.run()
@@ -96,20 +81,20 @@ def cmd_couchpotato(base_path, argv=None):
reloader = debug and not options.daemonize
# Basic config
app.host = settings.get('host', default='0.0.0.0')
app.port = settings.get('port', default=5000)
app.host = settings.get('host', default = '0.0.0.0')
app.port = settings.get('port', default = 5000)
app.debug = debug
app.secret_key = api_key
app.static_path = url_base + 'static'
# Add static url with url_base
app.add_url_rule(app.static_path + '/<path:filename>',
endpoint='static',
view_func=app.send_static_file)
endpoint = 'static',
view_func = app.send_static_file)
# Register modules
app.register_module(web, url_prefix=url_base)
app.register_module(api, url_prefix='%s/%s' % (url_base + 'api', api_key))
app.register_module(web, url_prefix = url_base)
app.register_module(api, url_prefix = '%s/%s' % (url_base + 'api', api_key))
# Go go go!
app.run(use_reloader=reloader)
app.run(use_reloader = reloader)