#!@PYTHON@ """\ nbb - ndim's branch builder Build, install given branch of source code into a branch specific place Copyright (C) 2007, 2008 Hans Ulrich Niedermann License conditions TBA """ import sys import os PACKAGE_VERSION = "@PACKAGE_VERSION@" if sys.version_info < (2, 4): print "Fatal: This program requires Python 2.4 or later." sys.exit(3) import logging # since python 2.3 def logmain(argv): """set up logging module""" # funcName: Since python 2.5 # format="%(filename)s:%(lineno)d:%(funcName)s:" logformat = "%(levelname)s: %(message)s" loglevel = logging.WARNING i = 1 while i < len(argv): if argv[i] in ('--debug', ): del argv[i] loglevel = logging.DEBUG elif argv[i] in ('--info', ): del argv[i] loglevel = logging.INFO else: i += 1 logging.basicConfig(format = logformat, level = loglevel, stream = sys.stderr) if False: logging.debug("xxx debug") logging.info("xxx info") logging.warning("xxx warn") logging.error("xxx error") def nbbmain(argv): """nbb main program""" logmain(argv) pkgpythondir = "@pkgpythondir@" lib_found = False logging.debug("pkgpythondir %s", pkgpythondir) logging.debug("sys.path %s", sys.path) sys.stdout.flush() orig_path = sys.path for cond, path in [ (True, orig_path), (os.path.exists(pkgpythondir), [pkgpythondir] + orig_path), ]: if cond: sys.path = path try: import nbblib logging.debug("PACKAGE_VERSION from nbb: %s, from nbblib: %s", PACKAGE_VERSION, nbblib.PACKAGE_VERSION) assert(nbblib.PACKAGE_VERSION == PACKAGE_VERSION) lib_found = True break except AssertionError: logging.debug("Assertion error", exc_info=True) sys.path = orig_path except ImportError: logging.debug("Import error", exc_info=True) sys.path = orig_path if not lib_found: logging.error("nbb: Fatal: Could not import nbblib.") logging.shutdown() sys.exit(3) logging.info("Using nbblib loaded from %s, python prefix %s", os.path.split(sys.modules['nbblib'].__file__)[0], sys.prefix) import nbblib.main nbblib.main.cmdmain(sys.argv) if __name__ == '__main__': nbbmain(sys.argv) # vim: syntax=python # Local Variables: # mode: python # End: