Hi, Ok, so it's more major than I originally intended but I think it's a good direction (once you get used to it). Roughly:
1. All bash color vars are now prefixed with `PORTAGE_COLOR_` to avoid accidental collisions with ebuild vars (e.g. ebuild setting `GOOD=foo` broke `elog` before). 2. There are specific color vars for all kinds of output functions, and now `einfo` messages use distinct color (dark green) from `elog`, and `eqawarn` (brown) from `ewarn`. 3. Messages are now prefixed by their kind, making it possible to distinguish them without colors and grep for specific kind of logs: - `[--]` for einfo & ebegin - `[II]` for elog - `[WW]` for ewarn - `[QA]` for eqawarn - `[EE]` for eerror 4. Finally, I've replaced most of `>>>` and `!!!` in Portage output with four `>>>>` and `!!!!` to align the output again. PR (includes screenshot): https://github.com/gentoo/portage/pull/759 Michał Górny (4): Prefix color vars with "PORTAGE_COLOR_" Use distinct colors for output msg types Use verbose prefixes for output messages Use ">>>>" and "!!!!" for output prefixes bin/clean_locks | 2 +- bin/dohtml.py | 2 +- bin/doins.py | 2 +- bin/ebuild | 8 +- bin/ebuild-helpers/dobin | 2 +- bin/ebuild-helpers/dodoc | 2 +- bin/ebuild-helpers/doexe | 2 +- bin/ebuild-helpers/doinfo | 2 +- bin/ebuild-helpers/dolib | 2 +- bin/ebuild-helpers/doman | 2 +- bin/ebuild-helpers/domo | 2 +- bin/ebuild-helpers/dosbin | 2 +- bin/ebuild-helpers/dosed | 4 +- bin/ebuild-helpers/keepdir | 2 +- bin/ebuild-helpers/newins | 4 +- bin/env-update | 2 +- bin/fixpackages | 4 +- bin/glsa-check | 14 +- bin/install-qa-check.d/10ignored-flags | 4 +- bin/install.py | 2 +- bin/isolated-functions.sh | 50 ++++--- bin/misc-functions.sh | 22 +-- bin/phase-functions.sh | 64 ++++----- bin/phase-helpers.sh | 18 +-- bin/portageq | 6 +- bin/save-ebuild-env.sh | 18 ++- cnf/repo.postsync.d/example | 4 +- lib/_emerge/Binpkg.py | 10 +- lib/_emerge/BinpkgExtractorAsync.py | 4 +- lib/_emerge/BinpkgVerifier.py | 12 +- lib/_emerge/BlockerCache.py | 2 +- lib/_emerge/BlockerDB.py | 2 +- lib/_emerge/EbuildBuild.py | 2 +- lib/_emerge/EbuildIpcDaemon.py | 2 +- lib/_emerge/EbuildPhase.py | 2 +- lib/_emerge/JobStatusDisplay.py | 2 +- lib/_emerge/MergeListItem.py | 2 +- lib/_emerge/PackageUninstall.py | 6 +- lib/_emerge/Scheduler.py | 20 +-- lib/_emerge/SpawnProcess.py | 2 +- lib/_emerge/SubProcess.py | 2 +- lib/_emerge/actions.py | 126 ++++++++++-------- lib/_emerge/countdown.py | 4 +- lib/_emerge/depgraph.py | 121 +++++++++-------- lib/_emerge/main.py | 6 +- lib/_emerge/post_emerge.py | 4 +- lib/_emerge/resolver/output_helpers.py | 4 +- lib/_emerge/resolver/slot_collision.py | 16 +-- lib/_emerge/show_invalid_depstring_notice.py | 2 +- lib/_emerge/unmerge.py | 44 +++--- lib/portage/__init__.py | 24 ++-- lib/portage/_selinux.py | 4 +- lib/portage/_sets/shell.py | 2 +- lib/portage/binrepo/config.py | 4 +- lib/portage/data.py | 2 +- lib/portage/dbapi/__init__.py | 2 +- lib/portage/dbapi/bintree.py | 45 ++++--- lib/portage/dbapi/porttree.py | 12 +- lib/portage/dbapi/vartree.py | 94 ++++++------- lib/portage/dep/__init__.py | 48 +++---- lib/portage/elog/__init__.py | 2 +- lib/portage/elog/messages.py | 15 ++- lib/portage/elog/mod_custom.py | 4 +- lib/portage/elog/mod_echo.py | 4 +- lib/portage/elog/mod_mail_summary.py | 2 +- lib/portage/elog/mod_save_summary.py | 2 +- lib/portage/emaint/modules/binhost/binhost.py | 3 +- lib/portage/env/loaders.py | 14 +- lib/portage/getbinpkg.py | 32 ++--- lib/portage/locks.py | 2 +- lib/portage/mail.py | 12 +- lib/portage/manifest.py | 2 +- lib/portage/metadata.py | 6 +- lib/portage/news.py | 6 +- lib/portage/output.py | 65 +++++++-- .../ebuild/_config/LocationsManager.py | 10 +- .../_parallel_manifest/ManifestProcess.py | 6 +- .../_parallel_manifest/ManifestScheduler.py | 2 +- .../ebuild/_parallel_manifest/ManifestTask.py | 6 +- lib/portage/package/ebuild/config.py | 61 ++++----- .../ebuild/deprecated_profile_check.py | 12 +- lib/portage/package/ebuild/digestcheck.py | 24 ++-- lib/portage/package/ebuild/digestgen.py | 20 +-- lib/portage/package/ebuild/doebuild.py | 36 ++--- lib/portage/package/ebuild/fetch.py | 126 +++++++++--------- .../package/ebuild/prepare_build_dirs.py | 25 ++-- lib/portage/repository/config.py | 31 ++--- lib/portage/sync/config_checks.py | 12 +- lib/portage/sync/controller.py | 6 +- lib/portage/sync/modules/cvs/__init__.py | 2 +- lib/portage/sync/modules/cvs/cvs.py | 4 +- lib/portage/sync/modules/git/__init__.py | 4 +- lib/portage/sync/modules/git/git.py | 14 +- .../sync/modules/mercurial/mercurial.py | 4 +- lib/portage/sync/modules/rsync/rsync.py | 60 ++++----- lib/portage/sync/modules/svn/svn.py | 6 +- lib/portage/sync/modules/webrsync/webrsync.py | 10 +- lib/portage/sync/old_tree_timestamp.py | 2 +- lib/portage/sync/syncbase.py | 6 +- lib/portage/tests/resolver/test_autounmask.py | 6 +- .../resolver/test_autounmask_use_breakage.py | 6 +- ...est_slot_conflict_unsatisfied_deep_deps.py | 12 +- lib/portage/update.py | 4 +- lib/portage/util/__init__.py | 30 ++--- .../util/_dyn_libs/PreservedLibsRegistry.py | 4 +- .../util/_dyn_libs/display_preserved_libs.py | 4 +- lib/portage/util/env_update.py | 8 +- lib/portage/util/locale.py | 2 +- lib/portage/util/movefile.py | 40 +++--- lib/portage/util/mtimedb.py | 5 +- lib/portage/util/writeable_check.py | 4 +- lib/portage/versions.py | 20 +-- lib/portage/xml/metadata.py | 18 +-- misc/emerge-delta-webrsync | 8 +- repoman/lib/repoman/__init__.py | 12 +- repoman/lib/repoman/actions.py | 24 ++-- repoman/lib/repoman/gpg.py | 2 +- .../lib/repoman/modules/commit/manifest.py | 4 +- repoman/lib/repoman/modules/vcs/cvs/status.py | 6 +- .../lib/repoman/modules/vcs/git/changes.py | 2 +- repoman/lib/repoman/modules/vcs/svn/status.py | 6 +- repoman/lib/repoman/scanner.py | 4 +- 122 files changed, 937 insertions(+), 836 deletions(-) -- 2.33.0