argparse is lame!
This commit is contained in:
+1
-1
@@ -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
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user