Source code for resyndicator.console
import sys
import argparse
import importlib
from . import settings
[docs]def run():
"""Main entry point to the Resyndicator."""
parser = argparse.ArgumentParser(description='Run Resyndicator command.')
parser.add_argument('-s', '--settings', required=True,
help='The settings module')
parser.add_argument('command', help='The command')
args, rest = parser.parse_known_args(sys.argv[1:])
app_settings = importlib.import_module(args.settings)
package = args.settings.rsplit('.', 1)[0]
settings.RESOURCES = package + '.resources'
for key, value in vars(app_settings).items():
if not key.startswith('_'):
setattr(settings, key, value)
settings.BASE_COMMANDS.update(settings.COMMANDS)
if args.command in settings.BASE_COMMANDS:
module_name, function_name = \
settings.BASE_COMMANDS[args.command].rsplit('.', 1)
module = importlib.import_module(module_name)
function = getattr(module, function_name)
return function(rest)
else:
print('Valid commands (call <command> --help for help):')
print('\n'.join(settings.COMMANDS.keys()))
if __name__ == '__main__':
run()