From: Zac Medico Date: Thu, 30 Apr 2009 06:53:50 +0000 (-0000) Subject: Add support for a EGENCACHE_DEFAULT_OPTS variable in make.conf. (trunk r13266) X-Git-Tag: v2.1.6.12~128 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=20e7e8809fd7e0abca7df899a4ebb76ebae7096b;p=portage.git Add support for a EGENCACHE_DEFAULT_OPTS variable in make.conf. (trunk r13266) svn path=/main/branches/2.1.6/; revision=13445 --- diff --git a/bin/egencache b/bin/egencache index 3c4894612..66af2a75a 100755 --- a/bin/egencache +++ b/bin/egencache @@ -50,12 +50,11 @@ def parse_args(args): action="store_true", help="enable rsync stat collision workaround " + \ "for bug 139134 (use with --update)") + parser.add_option("--ignore-default-opts", + action="store_true", + help="do not use the EGENCACHE_DEFAULT_OPTS environment variable") options, args = parser.parse_args(args) - if not options.update: - parser.error('No action specified (--update ' + \ - 'is the only available action)') - if options.jobs: jobs = None try: @@ -105,7 +104,7 @@ def parse_args(args): if str(atom) != atom.cp: parser.error('Atom is too specific: %s' % (atom,)) - return options, args + return parser, options, args class GenCache(object): def __init__(self, portdb, cp_iter=None, max_jobs=None, max_load=None, @@ -223,7 +222,7 @@ class GenCache(object): level=logging.ERROR, noiselevel=-1) def egencache_main(args): - options, args = parse_args(args) + parser, options, atoms = parse_args(args) config_root = options.config_root if config_root is None: @@ -242,6 +241,27 @@ def egencache_main(args): settings = portage.config(config_root=config_root, target_root='/', env=env) + default_opts = None + if not options.ignore_default_opts: + default_opts = settings.get('EGENCACHE_DEFAULT_OPTS', '').split() + + if default_opts: + parser, options, args = parse_args(default_opts + args) + + if options.config_root is not None: + config_root = options.config_root + + if options.cache_dir is not None: + env['PORTAGE_DEPCACHEDIR'] = options.cache_dir + + settings = portage.config(config_root=config_root, + target_root='/', env=env) + + if not options.update: + parser.error('No action specified (--update ' + \ + 'is the only available action)') + return 1 + if 'metadata-transfer' not in settings.features: writemsg_level("ecachegen: warning: " + \ "automatically enabling FEATURES=metadata-transfer\n", @@ -255,8 +275,8 @@ def egencache_main(args): portdb = portage.portdbapi(settings["PORTDIR"], mysettings=settings) cp_iter = None - if args: - cp_iter = iter(args) + if atoms: + cp_iter = iter(atoms) gen_cache = GenCache(portdb, cp_iter=cp_iter, max_jobs=options.jobs, diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index 50974cd76..0a3bb278c 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -1091,7 +1091,7 @@ class config(object): _environ_filter += [ "ACCEPT_KEYWORDS", "AUTOCLEAN", "CLEAN_DELAY", "COLLISION_IGNORE", "CONFIG_PROTECT", - "CONFIG_PROTECT_MASK", "EMERGE_DEFAULT_OPTS", + "CONFIG_PROTECT_MASK", "EGENCACHE_DEFAULT_OPTS", "EMERGE_DEFAULT_OPTS", "EMERGE_WARNING_DELAY", "FETCHCOMMAND", "FETCHCOMMAND_FTP", "FETCHCOMMAND_HTTP", "FETCHCOMMAND_SFTP", "GENTOO_MIRRORS", "NOCONFMEM", "O",