#!/usr/bin/env python
#
#

# bootstrap

import sys
import os
import logging
sys.path.insert(0, os.getcwd())
sys.path.insert(0, os.getcwd() + os.sep + '..')

# print version

from gozerlib.utils.generic import getversion
print getversion('CONSOLE')

## parse options

if True:
    from optparse import OptionParser
    parser = OptionParser(usage='usage: %prog [options]', version='%prog ' + getversion())
    parser.add_option('-o', '--owner', type='string', default=False,
dest='owner', 
                  help="owner of the bot")
    parser.add_option('-l', '--loglevel', type='string', default="error",
dest='loglevel', help="set loglevel")
    parser.add_option('-c', '--channel', type='string', default="",
dest='channel', help="channel to operate on")
    parser.add_option('-x', '--exec', type='string', default="",
dest='command', help="give a command to execute")

    opts, args = parser.parse_args()
    opts.args = args

## set loglevel

from gozerlib.utils.log import setloglevel
setloglevel(opts.loglevel)


# gozerlib imports

from gozerlib.plugins import Plugins
from gozerlib.botbase import BotBase
from gozerlib.plugins import Plugins
from gozerlib.config import Config
from gozerlib.datadir import makedirs, datadir
from gozerlib.users import Users
from gozerlib.boot import boot
from gozerlib.errors import NoOwnerSet

## basic imports

import getpass
import logging


## start the bot

makedirs()
plugs = Plugins()
users = Users()
users.make_owner(getpass.getuser())
cfg = Config()
cfg.owner = getpass.getuser()

try:
    bot = BotBase(cfg, plugs=plugs, users=users)
except NoOwnerSet:
    print "the owner is not set in %s" % cfg.cfile
    os._exit(1)

if opts.command:
    bot.docmnd(cfg.owner, opts.channel or "console", opts.command + u' '+ u' '.join(opts.args))
else:
    bot.start()
