def gettree(tree, config): emsg("Importing " + tree + " portage tree", config) if '.pyc' in config['esearchdbfile']: ext = ".pyc" else: ext = ".py" try: target = tmp_prefix + tree + "tree" + ext if os.path.exists(target): os.unlink(target) os.symlink(os.path.join(config['esearchdbdir'], config['esearchdbfile']), target) except OSError as e: if e.errno != 17: error(str(e), fatal=True) try: if tree == "old": from esyncoldtree import db try: from esyncoldtree import dbversion if dbversion < config['needdbversion']: outofdateerror() except ImportError: outofdateerror() else: from esyncnewtree import db except ImportError: error("Could not find " + tree + "esearch-index. Please run " + green("eupdatedb") + " as root first", fatal=True) os.unlink(target) return db
def loaddb(config): """Loads the esearchdb""" try: sys.path.append(config['esearchdbdir']) from esearchdb import db except (ImportError, SyntaxError): error("Could not find esearch-index. Please run " + green("eupdatedb") + " as root first", stderr=config['stderr']) try: from esearchdb import dbversion if dbversion < config['needdbversion']: outofdateerror(config['stderr']) except ImportError: outofdateerror(config['stderr']) return db