#!/usr/bin/python3
#
#

""" NODE - bots.  """

__copyright__ = "Copyright 2014 B.H.J Thate"

## ENVIRONMENT

import os, sys

os.environ["PYTHONPATH"] = "eggs"

sys.path.insert(0, os.getcwd())

## IMPORTS

from bard.utils import hello, shutdown, error
from bard.bots.console import ConsoleBot
from bard.object import Object
from bard.log import init
from bard.runtime import kernel
from bard import  __version__

import readline
import logging
import time
import sys
import os

## MAIN

def main():
    cfg = kernel.cfg
    cfg.shell and hello("BARD", __version__)
    init(cfg.loglevel)
    if cfg.loglevel != "error": print("\n".join(sorted(cfg.show()))) ; print("")
    for package in cfg.plugs: kernel.plugs.start(package)
    for modname in cfg.services: kernel.services.start(modname)   
    for modname in cfg.bots: kernel.bots.start(modname)   
    kernel.plugs.init(cfg.init)
    kernel.services.init(cfg.init)
    kernel.bots.init(cfg.init)
    bot = ConsoleBot()
    if not cfg.shell:
        if cfg.runargs: bot.single() ; bot.wait()
    else: bot.start()
                                                
if __name__ == "__main__": 
    try: main()
    except (EOFError, KeyboardInterrupt): pass
    shutdown()
