From bb687e9ae0748118c6040bcdae8d1343a7d7c877 Mon Sep 17 00:00:00 2001 From: Marius Mauch Date: Fri, 5 Oct 2007 19:29:17 +0000 Subject: first version of set integration in emerge svn path=/main/trunk/; revision=7956 --- pym/emerge/__init__.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'pym/emerge') diff --git a/pym/emerge/__init__.py b/pym/emerge/__init__.py index efe456d3f..eb47084a1 100644 --- a/pym/emerge/__init__.py +++ b/pym/emerge/__init__.py @@ -31,7 +31,7 @@ except ImportError: import portage del os.environ["PORTAGE_LEGACY_GLOBALS"] from portage import digraph, portdbapi -from portage.const import NEWS_LIB_PATH, CACHE_PATH, PRIVATE_PATH +from portage.const import NEWS_LIB_PATH, CACHE_PATH, PRIVATE_PATH, USER_CONFIG_PATH import emerge.help import portage.xpak, commands, errno, re, socket, time, types @@ -52,7 +52,7 @@ import portage.exception from portage.data import secpass from portage.util import normalize_path as normpath from portage.util import writemsg -from portage.sets import InternalPackageSet +from portage.sets import InternalPackageSet, SetConfig, make_default_config from portage.sets.profiles import PackagesSystemSet as SystemSet from portage.sets.files import WorldSet @@ -6381,6 +6381,22 @@ def emerge_main(): print colorize("BAD", "\n*** emerging by path is broken and may not always work!!!\n") break + if myaction not in ["search", "metadata", "sync"]: + setconfigpaths = ["/usr/share/portage/config/sets.conf", os.path.join(settings["PORTDIR"], "sets.conf"), \ + os.path.join(os.sep, settings["PORTAGE_CONFIGROOT"], USER_CONFIG_PATH, "sets.conf")] + #setconfig = SetConfig(setconfigpaths, settings, trees[settings["ROOT"]]) + setconfig = make_default_config(settings, trees[settings["ROOT"]]) + del setconfigpaths + packagesets, setconfig_errors = setconfig.getSetsWithAliases() + for s in packagesets: + if s in myfiles: + # TODO: check if the current setname also resolves to a package name + if myaction in ["unmerge", "prune", "clean", "depclean"] and not packagesets[s].supportsOperation("unmerge"): + print "emerge: the given set %s does not support unmerge operations" % s + sys.exit(1) + myfiles.extend(packagesets[s].getAtoms()) + myfiles.remove(s) + if ("--tree" in myopts) and ("--columns" in myopts): print "emerge: can't specify both of \"--tree\" and \"--columns\"." sys.exit(1) -- cgit v1.2.3-1-g7c22