def do_normal(pkg, verbose): data = [] if not pkg[4]: installed = "[ Not Installed ]" else: installed = pkg[4] if pkg[2]: masked = red(" [ Masked ]") else: masked = "" data.append("%s %s%s\n %s %s\n %s %s" % \ (green("*"), bold(pkg[1]), masked, darkgreen("Latest version available:"), pkg[3], darkgreen("Latest version installed:"), installed)) if verbose: mpv = best(portdb.xmatch("match-all", pkg[1])) iuse_split, final_use = get_flags(mpv, final_setting=True) iuse = "" use_list = [] for ebuild_iuse in iuse_split: use = ebuild_iuse.lstrip('+-') if use in final_use: use_list.append(red("+" + use) + " ") else: use_list.append(blue("-" + use) + " ") use_list.sort() iuse = ' '.join(use_list) if iuse == "": iuse = "-" data.append(" %s %s\n %s %s" % \ (darkgreen("Unstable version:"), pkg_version(mpv), darkgreen("Use Flags (stable):"), iuse)) data.append(" %s %s\n %s %s\n %s %s\n %s %s\n" % \ (darkgreen("Size of downloaded files:"), pkg[5], darkgreen("Homepage:"), pkg[6], darkgreen("Description:"), pkg[7], darkgreen("License:"), pkg[8])) return data
def do_normal(pkg, verbose): data = [] if not pkg[4]: installed = "[ Not Installed ]" else: installed = pkg[4] if pkg[2]: masked = red(" [ Masked ]") else: masked = "" data.append("%s %s%s\n %s %s\n %s %s" % \ (green("*"), bold(pkg[1]), masked, darkgreen("Latest version available:"), pkg[3], darkgreen("Latest version installed:"), installed)) if verbose: mpv = best(portdb.xmatch("match-all", pkg[1])) iuse_split, final_use = get_flags(mpv, final_setting=True) iuse = "" use_list = [] for ebuild_iuse in iuse_split: use = ebuild_iuse.lstrip('+-') if use in final_use: use_list.append(red("+" + use) + " ") else: use_list.append(blue("-" + use) + " ") use_list.sort() iuse = ' '.join(use_list) if iuse == "": iuse = "-" data.append(" %s %s\n %s %s" % \ (darkgreen("Unstable version:"), pkg_version(mpv), darkgreen("Use Flags (stable):"), iuse)) data.append(" %s %s\n %s %s\n %s %s\n %s %s\n" % \ (darkgreen("Size of downloaded files:"), pkg[5], darkgreen("Homepage:"), pkg[6], darkgreen("Description:"), pkg[7], darkgreen("License:"), pkg[8])) return data, False
def updatedb(config=None): if not os.access(config['esearchdbdir'], os.W_OK): print( yellow("Warning:"), "You do not have sufficient permissions to save the index file in:", green(config['esearchdbdir']), file=config['stderr']) return False if config['verbose'] != -1 and "ACCEPT_KEYWORDS" in environ: print(yellow("Warning:"), "You have set ACCEPT_KEYWORDS in environment, this will result", file=config['stdout']) print(" in a modified index file", file=config['stdout']) ebuilds = portage.portdb.cp_all() numebuilds = len(ebuilds) if exists(config['tmpfile']): error("there is probably another eupdatedb running already.\n" + " If you're sure there is no other process, remove", config['tmpfile'], fatal=False) return False try: dbfd = open(config['tmpfile'], O_CREAT | O_EXCL | O_WRONLY, 0o600) except OSError: error("Failed to open temporary file.", fatal=False) return False dbfile = fdopen(dbfd, "w") dbfile.write("dbversion = " + str(config['needdbversion']) + "\n") dbfile.write("db = (\n") if not config['verbose']: config['stdout'].write(green(" * ") + "indexing: ") config['stdout'].flush() nr = 0 nrchars = 0 elif config['verbose'] == 1: lastcat = False cattime = time() try: for pkg in ebuilds: masked = False if not config['verbose']: nr += 1 s = str(numebuilds - nr) + " ebuilds to go" config['stdout'].write((nrchars * "\b \b") + s) config['stdout'].flush() nrchars = len(s) pkgv = portage.portdb.xmatch("bestmatch-visible", pkg) if not pkgv: pkgv = portage.best(portage.portdb.xmatch("match-all", pkg)) if not pkgv: continue masked = True if len(pkgv) > 1: try: homepage, description, _license = portage.portdb.aux_get( pkgv, ["HOMEPAGE", "DESCRIPTION", "LICENSE"]) except KeyError: homepage, description, _license = "", "", "" pass if len(pkgv) > 1: filesize = getfetchsize(pkgv) else: filesize = '0' (curcat, pkgname) = pkg.split("/") if config['verbose'] == 1 and curcat != lastcat: if lastcat != False: print(duration(cattime), file=config['stdout']) print(bold(" * " + curcat) + ":", end=' ', file=config['stdout']) cattime = time() lastcat = curcat installed = pkg_version(VARTREE.dep_bestmatch(pkg)) if installed: installed = str(installed) dbfile.write( repr((str(pkgname), str(pkg), masked, str(pkg_version(pkgv)), installed, str(filesize), str(homepage), str(description), str(_license))) + str(",\n")) except KeyboardInterrupt: dbfile.close() unlink(config['tmpfile']) print("", file=config['stdout']) return False print("", file=config['stdout']) dbfile.write(")") dbfile.close() copyfile(config['tmpfile'], os.path.join(config['esearchdbdir'], config['esearchdbfile'])) unlink(config['tmpfile']) sys.path.insert(0, config['esearchdbdir']) import esearchdb # import the file, to generate pyc if exists( os.path.join(config['esearchdbdir'], config['esearchdbfile']) + "c"): config['esearchdbfile'] += "c" print(green(" *"), "esearch-index generated in", duration(start), file=config['stdout']) print(green(" *"), "indexed", bold(str(numebuilds)), "ebuilds", file=config['stdout']) print(green(" *"), "size of esearch-index:", bold( str( int( stat( os.path.join(config['esearchdbdir'], config['esearchdbfile']))[6] / 1024)) + " kB"), file=config['stdout']) return True
def updatedb(config=None): if not os.access(config['esearchdbdir'], os.W_OK): print(yellow("Warning:"), "You do not have sufficient permissions to save the index file in:", green(config['esearchdbdir']), file=config['stderr']) return False if config['verbose'] != -1 and "ACCEPT_KEYWORDS" in environ: print(yellow("Warning:"), "You have set ACCEPT_KEYWORDS in environment, this will result", file=config['stdout']) print(" in a modified index file", file=config['stdout']) ebuilds = portage.portdb.cp_all() numebuilds = len(ebuilds) if exists(config['tmpfile']): error("there is probably another eupdatedb running already.\n" + " If you're sure there is no other process, remove", config['tmpfile'], fatal=False) return False try: dbfd = open(config['tmpfile'], O_CREAT | O_EXCL | O_WRONLY, 0o600) except OSError: error("Failed to open temporary file.", fatal=False) return False dbfile = fdopen(dbfd, "w") dbfile.write("dbversion = " + str(config['needdbversion']) + "\n") dbfile.write("db = (\n") if not config['verbose']: config['stdout'].write(green(" * ") + "indexing: ") config['stdout'].flush() nr = 0 nrchars = 0 elif config['verbose'] == 1: lastcat = False cattime = time() try: for pkg in ebuilds: masked = False if not config['verbose']: nr += 1 s = str(numebuilds - nr) + " ebuilds to go" config['stdout'].write((nrchars * "\b \b") + s) config['stdout'].flush() nrchars = len(s) pkgv = portage.portdb.xmatch("bestmatch-visible", pkg) if not pkgv: pkgv = portage.best(portage.portdb.xmatch("match-all", pkg)) if not pkgv: continue masked = True if len(pkgv) > 1: try: homepage, description, _license = portage.portdb.aux_get( pkgv, ["HOMEPAGE", "DESCRIPTION", "LICENSE"]) except KeyError: homepage, description, _license = "", "", "" pass if len(pkgv) > 1: filesize = getfetchsize(pkgv) else: filesize = '0' (curcat, pkgname) = pkg.split("/") if config['verbose'] == 1 and curcat != lastcat: if lastcat != False: print(duration(cattime), file=config['stdout']) print(bold(" * " + curcat) + ":", end=' ', file=config['stdout']) cattime = time() lastcat = curcat installed = pkg_version(VARTREE.dep_bestmatch(pkg)) if installed: installed = str(installed) dbfile.write(repr((str(pkgname), str(pkg), masked, str(pkg_version(pkgv)), installed, str(filesize), str(homepage), str(description), str(_license))) + str(",\n")) except KeyboardInterrupt: dbfile.close() unlink(config['tmpfile']) print("", file=config['stdout']) return False print("", file=config['stdout']) dbfile.write(")") dbfile.close() copyfile(config['tmpfile'], os.path.join(config['esearchdbdir'], config['esearchdbfile'])) unlink(config['tmpfile']) sys.path.insert(0, config['esearchdbdir']) import esearchdb # import the file, to generate pyc if exists( os.path.join(config['esearchdbdir'], config['esearchdbfile']) + "c"): config['esearchdbfile'] += "c" print(green(" *"), "esearch-index generated in", duration(start), file=config['stdout']) print(green(" *"), "indexed", bold(str(numebuilds)), "ebuilds", file=config['stdout']) print(green(" *"), "size of esearch-index:", bold(str(int(stat( os.path.join(config['esearchdbdir'], config['esearchdbfile']) )[6]/1024)) + " kB"), file=config['stdout']) return True