Source code for zot.runtime
# zot/runtime.py
#
#
""" basic package for the program. """
__copyright__ = "Copyright 2015, B.H.J Thate"
## IMPORTS
from zot.defaults import cfg_kernel
from zot.utils import make_opts, hello, error
from zot.dispatcher import DISPATCHER
from zot.defines import opts_defs
from zot.plugins import PLUGINS
from zot.object import Object
from zot.log import init
import logging
import sys
import os
[docs]def zotpath():
for path in sys.path:
if "zot" in path and "egg" in path: yield path
## KERNEL
[docs]class KERNEL(PLUGINS):
def __init__(zelf, *args, **kwargs):
zelf.mods = PLUGINS()
zelf.cfg = Object()
[docs] def boot(zelf, *args, **kwargs):
opts, arglist = make_opts(opts_defs)
cfg.update(cfg_kernel)
cfg.update(vars(opts))
cfg.runargs = arglist
cfg.shell = True
if arglist: cfg.shell = False
if cfg.shell and args: hello(args[0])
init(zelf.cfg.loglevel)
if zelf.cfg.loglevel != "error":
print("\n".join(sorted(zelf.cfg.show())))
print("path=%s" % ", ".join(list(zotpath())))
print("")
for package in zelf.cfg.packages:
try: zelf.mods.load(package)
except: error()
zelf.mods.init(cfg.init)
zelf.ready()
return zelf
[docs] def shutdown(zelf, *args, **kwargs): logging.warn("shutdown")
## DEFINES
kernel = KERNEL()
mods = kernel.mods
cfg = kernel.cfg
fleet = []